加油,新时代打工人。
前面两篇我们介绍了冒泡排序、选择排序,那么插入排序是怎么回事呐?
先看图
插入排序呢,首先从第二个元素与前面进行比较,如果小就放前面了。紧接着后面依次的进行往前比较。
动态插入排序图
看源码
public class insertionSort {
public static void main(String[] args) {
int[] arr = {10, 22, 11, 1, 3, 4, 5, 7};
System.out.print("原数组");
System.out.println(Arrays.toString(arr));
test(arr);
System.out.print("排序后的数组 [");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
System.out.print(+arr[i] + " ]");
} else {
System.out.print(arr[i] + ",");
}
}
}
private static void test(int[] arr) {
for (int i = 1; i < arr.length; i++) {
int temp = arr[i];//当前的元素
int j = i - 1;//前面的元素
//当前元素和前面进行比较,将小的元素,往前移
while (j >= 0 && temp < arr[j]) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = temp;
}
}
}



