首页 > 代码库 > 希尔排序(shell)理论---不含源码
希尔排序(shell)理论---不含源码
| 版权声明:本文为博主原创文章,未经博主允许不得转载。
希尔排序,是一个缩小增量排序。它根据步长来进行排序,步长不同可能会产生不同的序列,但是他们的最终结果是相同的,希尔排序的官方理论难以理解,这里就用非官方的解释来阐述。
原理:
>1.加入有n个节点的序列,假设希尔排序的步长i,那么我们第一步就是将这n个节点,每隔i个座位为一组,如下所示(步长i要取好):
[n1, n1+i]
[n2, ni+2]
[...........]
[nx, nn]
>2.然后每一组两两比较,如n1和n1+i比较,选择合适(合适是指排序的升降关系)的数据排在前面。假如n1+i < n1,且按升序排,那么第一组排序后的序列为[n1+i, n1],其他的依次类推,组成排好序的x组。假设如下是排好的序列。
[n1+i, n1]
[n2, ni+2]
[n3, ni+3]
[ni+4, n4]
[...........]
[nx, nn]
>3.最后将按纵向的序列,将所有的节点依次写好,这就是希尔排序的第一趟的结果了,根据>2.来的结果是:n1+i, n2, n3, ni+4, ...., nx, n1, ni+2, ni+3, n4, ...., nn
>4.然后将步长i减去1,重复上面的操作,直到i=0,结束。
示例:以(5,6,1,8,4,9)序列为例,演示第一趟排序的结果
希尔排序(shell)理论---不含源码
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。