希尔排序

来源:互联网 发布:初学者学英语软件 编辑:程序博客网 时间:2024/06/16 06:33
/*
 * 希尔排序是先选好增量,期间需要比较的数不只两个的时候采用直接插入排序法。
 */
package sort;


import java.util.Arrays;


public class ShellSort {
public static void shellSortSmallToBig(int[] data,int n) {
int d;    //增量d
int i,j,x;
d=n/2;
while(d>=1){
for(i=d;i<n;i++){
x=data[i];//获取数列中的元素
j=i-d;//序列中的前一个数据,也就是需要和data[i]比较的元素
while(j>=0&&data[j]>x){
data[j+d]=data[j];
j=j-d;
}
data[j+d]=x;
}
d=d/2;
}



}
public static void main(String[] args) {
int[] data = new int[] { 26, 53, 67, 48, 57, 13, 48, 32, 60, 50 };
shellSortSmallToBig(data,data.length);
for(int i=0; i<data.length; i++){
           System.out.print(data[i]+"   ");
       }

}
}
0 0
原创粉丝点击