希尔排序(Shell Sort)

代码 代码 1036 人阅读 | 0 人回复

<
  希我排序(Shell’s Sort)是插进排序的一种又称“减少删量排序”(Diminishing Increment Sort),是间接插进排序算法的一种更下效的改良版本。希我排序长短不变排序算法。该办法果 D.L.Shell 于 1959 年提出而得名。
上里的那段叙说去自百度百科,我们能够明白希我排序是插进排序的改良版,假如插进排序借出有弄分明的话,倡议先来看那篇专客补一补:皆是❤️两层轮回❤️的冒泡排序,挑选排序,插进排序该怎样辨别。那里我们也大抵正在对插进排序做个温习。
115217v8cg8f9nj90z3jw8.gif

插进排序将第一个数(也能够辨认的)看为有序区间展开,从第两个数开端顺次拿着每一个数来到有序区间顺次比力,终极插进到适宜他的处所。
希我排序做了晋级,遵照上面那个轮回:

  • 根据一个划定规矩将待排序序列分组(分组划定规矩有许多,我们那里引见一种:开端将序列分红序列少度除以两组,好比一共十个数,除以两即是五,便先分红5组,两个为一组,然后每次轮回城市从头除以两分组,第两次便是 5 / 2背下与整为2组,第三次是一组)
    115218e2myoy5c6ki5c9kk.jpg

  • 然后对统一组做组内乱插进排序,我们做降序
    115218c32atdffm623xxad.png

  • 组数除以两,如今便是2组,便是五个为一组
    115218ea5gyv6vmwvmmhl8.png

  • 回到2轮回
不断到一切数为统一组,再做最初一次排序。最初一次便是我们了解的对全部序列插进排序,此次排序结束序列也便有序了,上面看一下动图演示:
115219iwpbywdqciwieu62.gif

能够分明天看到最初一次便是我们本来教的插进排序,那末有些人便有疑问了,为何要年夜费周章的先从分组做插进排序开端?由于如许做会让每一个数字更快的靠近他排好序的地位,从而节流了工夫,能够曲利剑的了解为那么做便是更快了。。。
上面是代码完成:
[code]   public static void insertSort(int[] array, int size){        for (int i = size; i </span arrayspan class="token punctuation"./spanlengthspan class="token punctuation";/span ispan class="token operator"++/spanspan class="token punctuation")/spanspan class="token punctuation"{/span            span class="token keyword"int/span jspan class="token punctuation";/span            span class="token keyword"int/span val span class="token operator"=/span arrayspan class="token punctuation"[/spanispan class="token punctuation"]/spanspan class="token punctuation";/span            span class="token keyword"for/span span class="token punctuation"(/spanj span class="token operator"=/span i span class="token operator"-/span sizespan class="token punctuation";/span j span class="token operator">= 0 && val <span class="token operator">
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,按照目前互联网开放的原则,我们将在不通知作者的情况下,转载文章;如果原文明确注明“禁止转载”,我们一定不会转载。如果我们转载的文章不符合作者的版权声明或者作者不想让我们转载您的文章的话,请您发送邮箱:Cdnjson@163.com提供相关证明,我们将积极配合您!
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并自负版权等法律责任。
回复 关闭延时

使用道具 举报

 
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则