插入排序 - 方式一
方法将待排序数持续向左移动,直到待排序数不再大于前一个数
1 public static void insertSort(int[] arr) { 2 3 for (int i = 0; i < arr.length; i++) { 4 for (int j = i; j > 0; j--) { 5 if(arr[j]<arr[j-1]) { 6 int tmp=arr[j]; 7 arr[j]=arr[j-1]; 8 arr[j-1]=tmp; 9 } 10 } 11 } 12 }
插入排序 - 方式二
思想与上面的相同,只是方法避免了重复多次的相邻数据的交换,只在最后一步将待排序树插入到合适位置
1 public static void insertSortTwo(int[] arr) { 2 3 for (int i = 0; i < arr.length; i++) { 4 int j = i; 5 int tmp=arr[i]; 6 for (; j > 0 && tmp<arr[j-1]; j--) { 7 arr[j]=arr[j-1]; 8 } 9 arr[j]=tmp; 10 } 11 }
先插入代码,以后在做进一步整理