简介
在生活中我们玩扑克牌时,当我们每拿到一张新的牌,会将他按照大小插入到对应的位置。为了找到这个对应的位置,我们通常将它与手中已经排好序的牌从到左进行比较。直到找到对应的位置。这就是插入排序的基本思想。
代码
public class Code_01_InsertionSort {
public static void insertionSort(int[] arr) {
if (arr == null || arr.length < 2) {
return;
}
for (int i = 1; i < arr.length; i++) {
for (int j = i - 1; j >= 0 && arr[j] > arr[j + 1]; j--) {
swap(arr,j,j+1);
}
System.out.println("第"+i+"次:");
for (int k = 0; k < arr.length; k++) {
System.out.print(arr[k]+",");
}
System.out.println();
}
}
public static void swap(int[] arr, int j, int i) {
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
public static void main(String[] args) {
int[] arr = { 6, 4, 1, 5, 2, 3 };
insertionSort(arr);
System.out.println("最终排序:");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+",");
}
}
}
实现过程
第1次:
4,6,1,5,2,3,
第2次:
1,4,6,5,2,3,
第3次:
1,4,5,6,2,3,
第4次:
1,2,4,5,6,3,
第5次:
1,2,3,4,5,6,
最终排序:
1,2,3,4,5,6,