以下代码还可以继续优化,但大体思路便是如此。
本代码已经使用对数器验证过。
如有错误,欢迎指出。
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]+" "); } } }