温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java中怎么实现 希尔排序

发布时间:2021-06-24 17:32:20 来源:亿速云 阅读:119 作者:Leah 栏目:云计算

Java中怎么实现 希尔排序,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。


  希尔排序的基本思想是先把数组分成若干个小数组,然后对小数组进行排序,最后再整体排序。
  如图所示
Java中怎么实现 希尔排序


Java具体实现代码:
输入:数据元素数组r,数组r 的待排序区间[low..high],步长序列delta
输出:数组r 以关键字有序
代码:

public void shellSort(Object[] r, int low, int high, int[] delta){for (int k=0;k<delta.length;k++)
        shellInsert(r, low, high, delta[k]); //一趟步长为delta[k]的直接插入排序}private void shellInsert(Object[] r, int low, int high, int deltaK){for (int i=low+deltaK; i<=high; i++)if (strategy.compare(r[i],r[i-deltaK])<0){ //小于时,需将r[i] 插入有序表Object temp = r[i];int j = i-deltaK;for(; j>=low&&strategy.compare(temp,r[j])<0; j=j-deltaK)
                r[j+deltaK] = r[j]; //记录后移r[j+deltaK] = temp; //插入到正确位置}
}

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI