返回信息流如图,学弟最近在学数据结构时翻到希尔排序,有些疑问,求各位学长学姐同学解答。。。
1:书里只写了对Hk排序时,不会改变H(k+1)的有序性,但书里也没有什么证明。。。所以这个定理是怎么证明的。。
2:貌似对希尔排序的算法分析是通过1的定理分析的,所以想求对希尔排序的复杂度分析
在网上搜了很多博客之类的,发现都没有相关的分析,求解答
第一次发帖,有什么不妥的地方,望学长学姐同学包涵。。。
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #89687同步于 2016/4/21
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖
有关希尔排序的问题。。求解答
m995877461
2016/4/21镜像同步10 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
【 在 nuanyangyang 的大作中提到: 】
: 希尔排序的复杂度很难说,但肯定大于O(n*log(n))
最好情况比较好理解。。。就是平均情况比较难理解。。。不是很明白为什么会比插入排序快,有没有比较理论的证明呢。。。。
首先,希尔排序的复杂度主要受到增量的影响,那么也就是说,增量的选择决定了希尔排序的时间复杂度。
其次,究竟应该选取什么样的增量才是最好,目前还是一个数学难题,迄今为止还没有人找到一种最好的增量序列。不过大量的研究表明,当增量序列为dlta[k]=2t‐k+1‐1(0≤k≤t≤.log2(n+1).)时,可以获得不错的效率,其时间复杂度为O(n^3/2),要好于直接排序的O(n^2)。
另,已知的最好步长序列是由Sedgewick提出的(1, 5, 19, 41, 109,...)
【 在 whn6325689 的大作中提到: 】
: 首先,希尔排序的复杂度主要受到增量的影响,那么也就是说,增量的选择决定了希尔排序的时间复杂度。
: 其次,究竟应该选取什么样的增量才是最好,目前还是一个数学难题,迄今为止还没有人找到一种最好的增量序列。不过大量的研究表明,当增量序列为dlta[k]=2t‐k+1‐1(0≤k≤t≤.log2(n+1).)时,可以获得不错的效率,其时间复杂度为O(n^3/2),要好于直接排序的O(n^2)。
: 另,已知的最好步长序列是由Sedgewick提出的(1, 5, 19, 41, 109,...)
请问对于希尔排序比插入排序快,或者说希尔排序的某种增量的复杂度有严格的证明吗。。。
证明有啊= =就是比较复杂
http://blog.csdn.net/u013007900/article/details/51232472
如果以后需要搜索一些学术性的东西,建议用Google
希尔排序退化之后也不见得比插入排序快多少,在某些情况下,希尔排序还是会退化成O(n^2)的啊
【 在 m995877461 的大作中提到: 】
:
: 请问对于希尔排序比插入排序快,或者说希尔排序的某种增量的复杂度有严格的证明吗。。。
看了一波你的博客,膜拜一下大男神
【 在 whn6325689 的大作中提到: 】
: 证明有啊= =就是比较复杂
: http://blog.csdn.net/u013007900/article/details/51232472
: 如果以后需要搜索一些学术性的东西,建议用Google
: ...................
= =只是转载一波,其实我是有考虑翻译一下的
只是最近期中太忙了,而且也在读英语
【 在 prison 的大作中提到: 】
: 看了一波你的博客,膜拜一下大男神
啊,我是看了一下你博客里的其他文章,好多很不错的工程向的文章
【 在 whn6325689 的大作中提到: 】
: = =只是转载一波,其实我是有考虑翻译一下的
: 只是最近期中太忙了,而且也在读英语