插入排序Java实现
时间: 2023-11-20 10:54:09 浏览: 43
下面是Java实现的插入排序代码:
```java
public class InsertionSort {
public static void sort(int[] arr) {
for (int i = 1; i < arr.length; i++) {
int j = i;
int tmp = arr[i];
while (j > 0 && arr[j - 1] > tmp) {
arr[j] = arr[j - 1];
j--;
}
arr[j] = tmp;
}
}
}
```
该算法的基本思想是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增加1的有序表。具体实现时,从第二个元素开始,将该元素与前面的元素依次比较,如果该元素小于前面的元素,则将前面的元素后移一位,直到找到该元素的正确位置,将该元素插入到该位置即可。
相关问题
插入排序java代码实现
下面是插入排序的Java代码实现:
```java
public class InsertionSort {
public static void insertionSort(int[] arr) {
int n = arr.length;
for (int i = 1; i < n; i++) {
int key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key;
}
}
}
```
这里我们使用了一个 for 循环来遍历整个数组,然后使用一个 while 循环来将当前元素插入到已排序的子数组中。在 while 循环中,我们将 arr[j] 向右移动,以便为当前元素腾出空间。最后,我们将当前元素插入到正确的位置。
用Java实现插入排序
好的,以下是 Java 实现的插入排序算法:
```java
public class InsertionSort {
public static void sort(int[] arr) {
int n = arr.length;
for (int i = 1; i < n; i++) {
int key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key;
}
}
}
```
这里的 `sort` 方法接收一个整数数组作为参数,使用插入排序算法对其进行排序。算法的核心思想是将数组分为已排序区间和未排序区间,每次从未排序区间中取出一个元素,在已排序区间中找到插入位置并插入。具体实现中使用一个变量 `key` 存储待插入元素的值,另一个变量 `j` 从后向前遍历已排序区间,找到插入位置并将其插入。