您现在的位置是:首页 > 文章详情

泛型希尔排序

日期:2018-08-13点击:491
     /**
     * 希尔排序
     *
     * @param array
     * @param <C>
     */
    public static <C extends Comparable> void sort(C[] array) {
        if (null == array || 1 >= array.length) {
            return;
        }
        // 奇数补1,偶数不补
        int skip = array.length / 2 + (array.length % 2 == 1 ? 1 : 0);
        while (skip >= 1) {
            for (int i = 0; i + skip < array.length; i++) {
                cas(array, i, i + skip);
            }
            skip /= 2;
        }
    }


    /**
     * 比较/交换值
     *
     * @param array
     * @param a
     * @param b
     * @param <C>
     */
    @SuppressWarnings("unchecked")
    private static <C extends Comparable> void cas(C[] array, int a, int b) {
        if (array[a].compareTo(array[b]) > 0) {
            C t = array[a];
            array[a] = array[b];
            array[b] = t;
        }
    }
原文链接:https://yq.aliyun.com/articles/625275
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章