以下代码还可以继续优化,但大体思路便是如此。
本代码已经使用对数器验证过。
如有错误,欢迎指出。
public class InsertionSortPro {
public static void main(String[] args) {
int[] arr = {1,2,4,0,-1};
sort(arr);
print(arr);
}
static void sort(int[] arr){
for(int i = 1;i<arr.length; i++){
int temp = arr[i];
int k = -1;
for (int j = i; j > 0 ; j--) {
if(arr[j-1] > temp){
arr[j] = arr[j-1];
k = j;
}
}
if(k!=-1) arr[k-1] = temp;
}
}
static void swap(int[] a, int i, int j){
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
static void print(int[] arr){
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
}