搜索和排序

时间:2016-09-21 00:54:23

标签: java sorting search

以下是我要解决的问题......

Shell排序是冒泡排序的变体。而不是比较相邻 值,Shell排序调整二进制搜索的概念来确定a 在任何交换发生之前比较价值的“差距”。在里面 第一次通过,间隙是阵列大小的一半。对于每个后续的传球, 间隙大小减少一半。对于最后的传递,间隙大小为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);
        }

    }
}

这是我能够提供的,有人可以向我推荐一些建议/输入来完成这个问题。

1 个答案:

答案 0 :(得分:0)

array [array.length]无效,因为索引从0开始。要获取数组中的最后一个元素,你可以做数组[array.length - 1]