1、首先希尔排序是一种递减增量的排序算法,下面使用大小为9的数组:54、26、93、17、31、44、55、20 。
文章插图
2、令数据间隔为3,将该数组分成三个子数组,如下图所示,为下图中灰色的部分 。
文章插图
3、对每一个子数组都进行插入排序操作,将排序好的子数组合并到一个数组当中 。这个时候,会发现,每个数字都会务必接近他应该存在的位置 。
文章插图
4、这是间隔为3的子数组排序后的结果,发现该排序后的数列非常接近我们需要的递减或者递增序列 。下一步只需要,缩小间隔进行重复性操作即可
文章插图
5、最后改变间隔,使间隔变成4,这个时候子数组反而有4组 。这个说明希尔排序(shell sort)是一个不稳定的排序 。
【n¹.³ 希尔排序时间复杂度O中的1.3是怎么来的?】
文章插图
推荐阅读
- "高山仰止,景行行止。虽不能至,然心向往之。”出自哪里?
- "烦死了",英文怎么翻啊
- 谁能概括一下<嫌疑人X的献身>书的大概剧情和结局
- 请问天猫和京东平台上的"3M官方旗舰店"是得到3M中国正式授权的,销售正品的网店吗?
- 英语“在野党”怎么说?
- 文言文《怪哉》"识"怎么翻译
- win7 64位安装网络打印机,出现“打印处理器不存在”,之前安装过64位程序,打印机一直能用,也杀过毒
- 海贼王:莫奈最初的草稿图被尾田曝光,是一个“肥婆”,你怎么看?
- 钢铁是怎样炼成的读后感800—1000字 急急急!!!!!!!!
- 三孔插头“左零右火上接天”的原理