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

插入排序-Shell排序

2016-06-10 11:07 190 查看
Shell排序的JAVA实现

import java.util.Arrays;

public class ShellSort {
public byte[] Sort(byte[] by) {
int d = by.length;
while (true) {
d = d / 2;
// x表示待排序数组的字段索引位置
for (int x = 0; x < d; x++) {// 取(增量个数)长度的数据
// i表示与x对应的增量索引位置
for (int i = x + d; i < by.length; i = i + d) {// 取增量差处的数据,与初始值比较。
int temp = by[i];// 取增量差处的数据
int j;// j表示在增量差位置上的字段索引位置
for (j = i - d; j >= 0 && temp < by[j]; j = j - d) {// 把值比较大的放到高位
by[j + d] = by[j];// 因为temp<by[j],所以j位置的值更大,所以[j]位置的数据需要移动到[j+d]位置上
}
by[j + d] = (byte) temp;
}
System.out.println("希尔排序第" + (x + 1) + "次:" + Arrays.toString(by));
}
if (d == 1) {
break;
}
}
return by;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  排序算法