public class InsertSortVersion3 {
public static void insertSort(int[] arr){
for (int i = 0;i<arr.length;i++){
insertIndex(arr,i);
}
}
/**
* 到x元素的位置都是有效的
* @param arr
* @param x
*/
private static void insertIndex(int[] arr,int x){
for (int a = x;a>0;a--){
if(arr[a]>arr[a-1]){
break;
}
swap(arr,a,a-1);
}
}
private static void swap(int[] arr,int x,int y){
int index = arr[y];
arr[y] = arr[x];
arr[x] = index;
}
public static void main(String[] args) {
int[] arr = {3,1,44,233,52,521,423,45};
InsertSortVersion3.insertSort(arr);
System.out.println(Arrays.toString(arr));
}
}