您的位置:首页 > 运维架构 > Shell

Java排序算法(五)--希尔排序(ShellSort)

2016-03-21 10:43 447 查看
希尔排序(插入排序-渐减增量排序diminishing increment sort):

思想:1.将原始数组按照增量分解为多个数组,分别按插入排序调好子序列的顺序;

2. 减小增量,重复第一步,直至增量为1。

public static int [] shellSort (int []d ){
int h =1;
int next =0;
int temp =0;
for(h =1;3*h +1<d .length;){
h=3* h+1;
}
for(;h >0;h =(h -1)/3){   //漸減增量,獲得增量值
for(int j =0;j <h ;j ++){  //依次取得增量序列
for(next =h +j ;next <d .length;next +=h ){
//取得子序列
temp= d[ next];
int k =0;
for(k =next ;k >=h &&temp<d[k-h];k-=h){
//在子系列內進行比較調整
d[ k]= d[ k- h];
}
d[ k]= temp;
}
}
}
return d ;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: