public class 插入排序 {
public static void main(String[] args) {
int arr[] = {2,2,3,3,4,5,1};
charuSort(arr);
for(int a:arr){
System.out.print(a+" ");
}
}
public static void charuSort(int arr[]){
if(arr == null || arr.length < 2)
return ;
/*
* 先将 0~0 排序
* 然后 0~1 排序
* 然后 0~2 排序
…………………………
* 最后 0~n 排序
* */
for(int i = 0; i < arr.length-1; i++){
for(int j = i + 1; j > 0 && arr[j] < arr[j-1]; j--){
swap(arr,j,j-1);
}
}
}
//此方法必须满足 i != j
public static void swap(int arr[], int i, int j){
arr[i] ^= arr[j];
arr[j] ^= arr[i];
arr[i] ^= arr[j];
}
}
代码参考视频:https://www.bilibili.com/video/BV13g41157hK?p=2