请用java实现一段简单的直接插入排序的代码
时间: 2023-11-14 17:05:03 浏览: 74
好的,以下是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 = j - 1;
}
arr[j + 1] = key;
}
}
public static void main(String[] args) {
int[] arr = { 5, 2, 8, 3, 1 };
insertionSort(arr);
System.out.println(Arrays.toString(arr));
}
}
```
这段代码中,我们定义了一个 `insertionSort` 方法来实现直接插入排序。在循环中,我们从第二个元素开始遍历数组,将当前元素存储在变量 `key` 中,并将游标 `j` 初始化为当前元素的前一个位置。然后,我们比较 `arr[j]` 和 `key` 的大小,如果 `arr[j]` 大于 `key`,我们将 `arr[j]` 移动到 `arr[j+1]` 的位置,直到 `arr[j]` 不再大于 `key` 或者 `j` 的值小于 `0`。最后,我们将 `key` 插入到 `arr[j+1]` 的位置。
在 `main` 方法中,我们创建了一个 `int` 类型的数组 `arr`,并将其传递给 `insertionSort` 方法进行排序。最后,我们使用 `Arrays.toString` 方法打印排序后的数组。
阅读全文