Java 插入排序之直接插入排序
- 直接插入排序是一种简单直观的插入排序算法,属于比较类排序,把要排序的数组分为已排序和未排序两部分,每次从未排序部分取出第一个元素(称为 key),插入到已排序部分的适当位置,直到所有元素已排序
- 默认将数组的第一个元素视为已排序部分,其余元素为未排序部分
- 直接插入排序易于理解和实现,适合小规模或部分有序的数据
- 时间复杂度:平均 O(n^2) 最好 O(n) 最坏 O(n^2)
- 空间复杂度:O(1)
- 稳定性:稳定
public static void main(String[] args) {
int[] arr = {3, 5, 1, 7, 6, 2, 4};
for (int i = 1; i < arr.length; 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;
}
System.out.println("排序后的数组:");
for (int num : arr) {
System.out.print(num + " ");
}
}
排序后的数组:
1 2 3 4 5 6 7