插入排序算法分析
插入排序算法有种递归的思想在里面,它由N-1趟排序组成。初始时,只考虑数组下标0处的元素,只有一个元素,显然是有序的。
然后第一趟 对下标 1 处的元素进行排序,保证数组[0,1]上的元素有序;
第二趟 对下标 2 处的元素进行排序,保证数组[0,2]上的元素有序;
…
…
第N-1趟对下标 N-1 处的元素进行排序,保证数组[0,N-1]上的元素有序,也就是整个数组有序了。
它的递归思想就体现在:当对位置 i 处的元素进行排序时,[0,i-1]上的元素一定是已经有序的了。
int[] array = {44,4,55,67,34,8,23};
System.out.println("排序之前:");
for(int num:array){
System.out.print(num + " ");
}
for(int i=1;i < array.length;i++){
int j = i;
int temp = array[i];
while(j > 0 && temp < array[j-1]){
array[j] = array[j-1];
j--;
}
if(i != j){
array[j] = temp;
}
}
System.out.println();
System.out.println("排序之后:");
for(int num:array){
System.out.print(num + " ");
}