直接插入排序法
在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。
java (1)
1 void insertSort(int[] arr){
2 for(int i=1; i<arr.length; i++){
3 if(arr[i] < arr[i-1]){
4 int temp = arr[i];
5 arr[i] = arr[i-1];
6 for(int j = i-2; j>=0; j--){
7 if(temp < arr[j]){
8 arr[j+1] = arr[j];
9 }else{
10 break;
11 }
12 }
13 a[j+1] = temp;
14 }
15 }
16 }
2 for(int i=1; i<arr.length; i++){
3 if(arr[i] < arr[i-1]){
4 int temp = arr[i];
5 arr[i] = arr[i-1];
6 for(int j = i-2; j>=0; j--){
7 if(temp < arr[j]){
8 arr[j+1] = arr[j];
9 }else{
10 break;
11 }
12 }
13 a[j+1] = temp;
14 }
15 }
16 }
java (2)
1 void insertSort(int[] arr){
2 for(int i=1; i<arr.length; i++){
3 if(arr[i] < arr[i-1]){
4 int temp = arr[i];
5 int j = i-1;
6 do{
7 arr[j+1] = arr[j];
8 j--;
9 }while(j>=0 && temp < arr[j]);
10 arr[j+1] = temp;
11 }
12 }
13 }
2 for(int i=1; i<arr.length; i++){
3 if(arr[i] < arr[i-1]){
4 int temp = arr[i];
5 int j = i-1;
6 do{
7 arr[j+1] = arr[j];
8 j--;
9 }while(j>=0 && temp < arr[j]);
10 arr[j+1] = temp;
11 }
12 }
13 }