用Java实现插入排序
时间: 2023-08-05 10:47:17 浏览: 45
好的,以下是 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` 从后向前遍历已排序区间,找到插入位置并将其插入。
相关问题
用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` 从后向前遍历已排序区间,找到插入位置并将其插入。
使用Java实现插入排序
好的,以下是Java实现插入排序的代码:
```java
public static void insertSort(int[] arr) {
int len = arr.length;
for (int i = 1; i < len; i++) {
int temp = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > temp) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = temp;
}
}
```
这里使用了一个for循环来遍历整个数组。在每次循环中,我们将当前元素保存在temp中,并将其与前面的元素进行比较。如果前面的元素比temp大,我们就将其向后移动一位,然后继续比较。如果前面的元素比temp小,我们就将temp插入到该元素的后面。
这样做的时间复杂度为O(n^2),因为在最坏的情况下,我们需要比较n(n-1)/2次。虽然插入排序的时间复杂度不如快速排序等算法,但它在小数据集上表现良好,并且它是稳定的。