插入排序是从已经排序的数组中找到新元素的位置
两层循环:
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; } }