java直接插入排序
时间: 2023-10-17 13:36:15 浏览: 107
直接插入排序(Insertion Sort)是一种简单直观的排序算法,它的基本思想是将待排序的元素逐个插入已排序序列中的正确位置。下面是 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;
// 将 arr[0..i-1] 中大于 key 的元素都向后移动一位
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("排序后的数组:");
for (int num : arr) {
System.out.print(num + " ");
}
}
}
```
以上代码中,`insertionSort` 方法实现了直接插入排序算法。在每一次迭代中,将待排序的元素 `key` 与已排序序列中的元素比较,如果 `key` 小于已排序序列中的某个元素,则将该元素向后移动一位,直到找到 `key` 的正确位置。最后,将 `key` 插入到正确位置,完成一次插入操作。
在 `main` 方法中,我们测试了一个示例数组 [5, 2, 8, 3, 1] 的排序结果。
输出结果为:1 2 3 5 8,表示数组已经按照升序排列完成。
阅读全文