1. 思路
每次让前 i 个数有序
2. 过程
遍历数组,当前 i 位置的元素的前面是有序的,i位置元素和前一个元素比较,小于则交换位置
3. 代码
public static void insertSort(int[] arr) {
//这种情况不用排
if (arr == null || arr.length < 2) {
return;
}
//第一位默认有序
for (int i = 1; i < arr.length; i++) {
//当前位 和 前一位 开始比较
for (int j = i - 1; j >= 0; j--) {
//如果 前一位 比 当前为 大 ,就交换位置
if (arr[j] > arr[j + 1]) {
swap(arr, j + 1, j);
} else {
// 已经有序了就跳出本次循环
break;
}
}
}
}