思想
插入排序,可以理解为我们打扑克牌。 拿到第一张牌时,我们手里的牌就是有序的。 拿到第二张牌时,我们需要对比,把第二张牌插入的第一张牌的左边或者右边。 拿到第三张牌时,需要按顺序,插入的他合适的位置。 ...... 拿完牌,我们手里的牌就是有序的。
图解
代码
`
public static void insertionSort(int[] arr){
if (arr == null || arr.length<2){
return;
}
//0-0 是有序的
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);
}
}
}
public static void swap(int[] arr,int i,int j){
arr[i] = arr[i]^arr[j];
arr[j] = arr[i]^arr[j];
arr[i] = arr[i]^arr[j];
}
`