美文网首页
shell-sort 简易理解

shell-sort 简易理解

作者: 派大星的博客 | 来源:发表于2018-10-11 11:55 被阅读3次

一个更好理解的希尔排序实现:将数组列在一个表中并对列排序(用插入排序)。重复这过程,不过每次用更长的列来进行。最后整个表就只有一列了。将数组转换至表是为了更好地理解这算法,算法本身仅仅对原数组进行排序(通过增加索引的步长,例如是用i += step_size而不是i++)。

例如,假设有这样一组数[ 13 14 94 33 82 25 59 94 65 23 45 27 73 25 39 10 ],如果我们以步长为5开始进行排序,我们可以通过将这列表放在有5列的表中来更好地描述算法,这样他们就应该看起来是这样:

13 14 94 33 82
25 59 94 65 23
45 27 73 25 39
10


然后我们对每列进行排序:

10 14 73 25 23
13 27 94 33 39
25 59 94 65 82
45


将上述四行数字,依序接在一起时我们得到:[ 10 14 73 25 23 13 27 94 33 39 25 59 94 65 82 45 ].这时10已经移至正确位置了,然后再以3为步长进行排序:

10 14 73
25 23 13
27 94 33
39 25 59
94 65 82
45


排序之后变为:

10 14 13
25 23 33
27 25 59
39 65 73
45 94 82
94


最后以1步长进行排序(此时就是简单的插入排序了)。

相关文章

  • shell-sort 简易理解

    一个更好理解的希尔排序实现:将数组列在一个表中并对列排序(用插入排序)。重复这过程,不过每次用更长的列来进行。最后...

  • Redux 简易理解

    搞了几天都没完全搞明白redux,所以做下笔记 入门教程推荐一个官方文档: http://camsong.gith...

  • shell-sort命令

    通过sort对输出进行排序。 语法 实例 对排序结果进行去重

  • 网络编程基础(二)

    网络编程基础(二) 四、简易聊天室的实现 在下面我们以一个简易的聊天室Demo进行socket的深入理解。 (一)...

  • 简易理解JSBridge实现原理

    一、JSBridge介绍 1.1、定义 JSBridge是什么?JSBridge是一种桥接器,通过JS引擎或Web...

  • Autoreleasepool简易版理解

    如上图这杯鸡尾酒.Autoreleasepool与他有相似之处. 1.Autoreleasepool其实就是由很多...

  • 简易理解js闭包

    要理解闭包,首先理解javascript特殊的变量作用域,变量的作用于无非就是两种:全局变量,局部变量。 java...

  • JAVA希尔排序(SHELL-SORT)

  • 100天持续行动—Day23

    11.14找到一个reinforcement learning 的简易教程,全部看完了,对Q-learning理解...

  • 《心即是佛》

    问:怎样理解“自心简易难信之秘密”? 答:大圆满法是最究竟的法,“自心简易难信之秘密”,我们的心性就是佛性,这是最...

网友评论

      本文标题:shell-sort 简易理解

      本文链接:https://www.haomeiwen.com/subject/aiqbaftx.html