ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 灰袍法师

[原创] 有史以来最快的希尔排序 - 比历史贴快10倍,比Excel排序更快 - 兼论堆排序和快速排序

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2010-12-15 21:27 | 显示全部楼层

回复 1楼 灰袍法师 的帖子

本帖已被收录到知识树中,索引项:排序
看懂需要时日,看数据比较,法师 牛.gif

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-12-15 21:34 | 显示全部楼层
原帖由 tfc 于 2010-12-15 11:58 发表
有没有多列快速排序算法?每列按第1、第2、第3。。。关键字排序。比如7列?排好后这样:
0        1        2        3        4        1        2
0        2        1        1        1        0        5
1        0        0        0        0        0        1
2        0        1        0        0        1        0
2        0        1        0        0        2        1


一般来说,多列排序还是先把多列合并为一个关键字,排序后再拆分比较好。

因为排序过程不可避免要对多列进行比较,交换,这些步骤通常比合并和拆分耗时更多。

如果全部是这么简单的数字

那么先把它们合并为一个大整数(如第一行就是整数123412),然后再排序,最后再拆分,比多列分别排序会快得多

最头疼的应该是多列字符串排序,而且要求第一列升序,第二列倒序,第三列升序。。。。。。如此类推

还是仔细考虑一下算法,尽量避免出现这样的排序为妙。

[ 本帖最后由 灰袍法师 于 2010-12-16 17:00 编辑 ]

TA的精华主题

TA的得分主题

发表于 2010-12-15 22:02 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
收藏先,慢慢消化~~

TA的精华主题

TA的得分主题

发表于 2010-12-15 22:02 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
暂时没大型排序的需要......留个记号,
感谢分享!

TA的精华主题

TA的得分主题

发表于 2010-12-15 23:54 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-12-16 14:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
楼主高精尖的基础研究令人敬仰,也对excel提出了等同于大型数据库的要求,收藏了!但在处理中小数据量时,速度的下降大家还是不会忍受的

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-12-29 20:37 | 显示全部楼层
顶楼更新,增加堆排序的算法和讨论,以备参考。

TA的精华主题

TA的得分主题

发表于 2010-12-31 11:43 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-8 03:44 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
更新了,这一次加入了六个版本的快速排序

嗯。。。。。。可以看出快速排序是怎样被一步一步优化的

我自己在优化过程中学到不少,分享一下啦。

本帖作为一个备查的档案,相信对以后要自己写排序算法的筒子有所帮助。

[ 本帖最后由 灰袍法师 于 2011-1-8 04:01 编辑 ]

TA的精华主题

TA的得分主题

发表于 2011-1-28 21:39 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-22 00:53 , Processed in 0.039941 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表