原理:
数组arr,
1,目标:0~0有序,必然成立;
2,目标:0~1有序,如果arr[1]<arr[0],交换;
3,目标:0~2有序,如果arr[2]<arr[1],交换,如果arr[1]<arr[0],交换;
4,目标:0~i有序,如果arr[i]<arr[i-1],交换,如果arr[i-1]<arr[i-2],交换,以此类推。。。
代码:
public static void insertionSort(int[] arr){
for(int i=1;i<arr.length;i++){
for(int j=i-1 ; j>=0 && arr[j]>arr[j+1] ; j--){
swap(j,j+1,arr);
}
}
}
private static void swap(int j,int i,int[]arr){
int temp=arr[j];
arr[j]=arr[i];
arr[i]=temp;
}