插入排序:通过对未排序的数据执行逐个插入至合适的位置而完成排序工作。
void insertionSort(int[] a){
int i,j,k,h;
for(i = 1; i < a.length; i++){
t = a[i];
j = i-1;
while(j >= 0 && t < a[j]){
a[j+1] = a[j];
j--;
}
a[i+1] = t;
System.out.println("第" + i + "次:");
for(h = 0;h < a.length; h++){
System.out.println("" + a[h]);
}
System.out.println();
}
}
shell排序:基于插入排序的思想,也称为缩小增量排序
void shellSort(int[] a){
int i,j,h;
int r,temp;
for(r = a.length/2; r >= 1; r/=2){
for(i = r; i < a.length;i++){
temp = a[i];
j = i-r;
while(j >= 0 && temp < a[j]){
a[j+r] = a[j];
j -= r;
}
a[j+r] = temp;
}
}
}