Shell排序算法
Shell排序算法严格来说基于插入排序的思想,其又称为希尔排序或者最小增量排序。Shell排序算法流程如下:
- 1.将有n个元素的数组分为你n/2个数字队列,第1个数据和第n/2+1个数据为一对,……
- 2.一次循环使每个序列对排好序。
- 3.然后,再变成n/4个序列对,再次排序。
- 4.不断重复上述过程。随着序列减少最后变成一个,也就完成了整个排序。
public class ShellSort {
public static void main(String[] args) {
int a[]={127,118,105,101,112,100};
int temp,r;
for(int i=a.length/2;i>=1;i/=2){
for(int j=i;j<a.length;j++){ //划组排序
temp=a[j];
r=j-i;
while(r>=0&&temp<a[r]){
a[r+i]=a[r];
r=r-i;
}
a[r+i]=temp;
}
}
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
}
}