思路

代码
public static void main(String[] args) {
Integer[] arr = new Integer[]{1,1,3,5,2,1,2,4,-1,1,7};
insertSort(arr);
System.out.println(new ArrayList<>(Arrays.asList(arr)));
}
// 插入排序
public static void insertSort(Integer[] arr) {
for (int i = 1; i < arr.length; i++) {
if (arr[i] >= arr[i-1]) {
continue;
}
int temp = arr[i];
for (int j = i-1; j >= 0; j--) {
if (arr[j] > temp) {
arr[j+1] = arr[j];
arr[j] = temp;
} else {
break;
}
}
}
}
总结
插入排序在序列原本顺序比较好时,相对来说会比较快,但最极端情况,其要交换的次数和冒泡排序一样,整体来说,性能不稳定。

本文详细介绍了插入排序算法的实现原理及具体代码实现,并通过一个具体的示例进行演示。文章指出,在数据基本有序的情况下,插入排序效率较高,但在最坏情况下性能不稳定。

被折叠的 条评论
为什么被折叠?



