插入排序是从已经排序的数组中找到新元素的位置
两层循环:
1 外层循环负责获取没有排序的一个元素.外循环从1开始
2 内循环负责在已经排序的数组中给未排序元素找位置
public class InsertDemo {
public static void main(String[] args) {
int[] arr = new int[] { 4, 3, 2, 1 };
int[] arr2 = getInsert(arr);
for (int a : arr2) {
System.out.print(a + " ");
}
}
public static int[] getInsert(int[] arr3) {
// 4,3,2,1
// 第一次比较:i=1 j=1 3,4,2,1
// 第二次比较:i=2 j=2 3,2,4,1
// j=1 2,3,4,1
// 第三次比较 i=3 j=3 2,3,1,4
// j=2 2,1,3,4
// j=1 1,2,3,4
for (int i = 1; i < arr3.length; i++) {
for (int j = i; j > 0; j--) {
if (arr3[j - 1] > arr3[j]) {
int temp = arr3[j - 1];
arr3[j - 1] = arr3[j];
arr3[j] = temp;
}
}
}
return arr3;
}
}