【发布时间】:2016-09-21 00:54:23
【问题描述】:
这是我要解决的问题....
Shell 排序是冒泡排序的一种变体。而不是比较相邻的 值,Shell 排序采用二进制搜索中的概念来确定 在任何交换发生之前比较值的“间隙”。在里面 第一遍,间隙是数组大小的一半。对于随后的每一次通过, 间隙大小减半。对于最后一次通过,间隙大小为 1,因此它将是 与冒泡排序相同。通行证一直持续到没有交换发生
这是我的代码:
public class Shellsort {
protected int[] array= {9,6,8,12,3,1,7};
protected int gap;
public Shellsort() {
gap=array.length/2;
for (int y=0; y<=gap; y++){
for(int a=gap; a<=array.length; a++){
if(array[y]>array[array.length]){
swap(array[y],array[array.length]);
}
a++;
y++;
}
}
public int swap (int x, int z){
x=array[y];
z=array[array.length];
return (z, x);
}
}
}
这是我能想到的,有人可以推荐我一些建议/意见来解决这个问题。
【问题讨论】:
-
您的
swap无法使用。