(1)基本思想:
在要排序的一组数中,假设前面(n-1)[n>=2]个数已经是排好序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好序的。如此反复循环,知道全部排好序。
(2)代码实现:
/**
* 直接插入排序
* @param arr
*/
public static void directInsert(int[] arr){
int temp;
for(int i = 0; i < arr.length; i++){
System.out.print("排序前:" + arr[i] + " ");
}
for(int i = 1 ; i < arr.length; i++ ){
for(int j =i; j > 0; j--){
if(arr[j] < arr[j - 1]){
temp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = temp;
}
}
}
System.out.println();
for(int i = 0; i < arr.length; i++){
System.out.print("排序后:" + arr[i] + " ");
}
}