测试评估:14种排序算法和PHP数组
2023-03-09 22:26:11 时间
在这篇文章里,我将向大家介绍用PHP写的排序算法的测试。
以下是14种排序算法:
- 快速排序
- 计数排序
- 梳排序
- 堆排序
- 归并排序
- 希尔排序
- 选择排序
- 插入排序
- 地精排序
- 联合冒泡排序
- 鸡尾酒排序
- 冒泡排序
- 奇偶排序
- 使用标志的冒泡排序
算法不是按字母排序,而是按照它们进行8千个元素排序时整体速度递减来排序。
以下是用到的数组的大小:
- 1
- 100
- 200
- 400
- 600
- 800
- 1000
- 5000
- 10000
- 15000
- 20000
- 25000
- 30000
每次测量都用不同大小的数组,然后传入排序函数。
- ***种情况下,数组被随机填充(1,N)之间的值,其中N指数组的大小。
- 第二种情况下,数组被随机填充(1,PHP_INT_MAX)之间的值,其中PHP_INT_MAX是指当前系统中INT类型的***值,在我的系统中为2^63或大约为9.2233720368548E+18。
每种测试进行3次,然后取其算术平均值。
1000个元素的数组
在当前数组大小的所有算法排序情况。
30000个元素的数组
此时,5种最快的算法进行测试:计数排序,快速排序,梳排序,堆排序和归并排序。
200000个元素的数组
此时,5种最快的算法进行测试:计数排序,快速排序,梳排序,堆排序和归并排序。
2000000个元素的数组
在***一轮2000000个元素的测试中,只有2种算法进行测试:计数排序和快速排序。
总结
快速排序是实至名归的好算法。计数排序在小值范围里表现良好;其他情况因为低内存而应 付不来。鸡尾酒排序对于随机值是一个坏选择。冒泡排序及其变形并不适合实际应用。
所有算法的源代码+结果:https://drive.google.com/file/d/0B63HSL7JD630VWdSSFgwdHR5RkU/edit?usp=sharing
使用内置排序函数是一个有趣的练习。使用解释型的PHP来写排序函数永远也快不过sort() 采用的C变体。
原文链接: ahwoobachairiesaas 翻译: 伯乐在线 - hoikin-yiu
相关文章
- 在 Go 里用 CGO?这 7 个问题你要关注!
- 9款优秀的去中心化通讯软件 Matrix 的客户端
- 求职数据分析,项目经验该怎么写
- 在OKR中,我看到了数据驱动业务的未来
- 火山引擎云原生大数据在金融行业的实践
- OpenHarmony富设备移植指南(二)—从postmarketOS获取移植资源
- 《数据成熟度指数》报告:64%的企业领袖认为大多数员工“不懂数据”
- OpenHarmony 小型系统兼容性测试指南
- 肯睿中国(Cloudera):2023年企业数字战略三大趋势预测
- 适用于 Linux 的十大命令行游戏
- GNOME 截图工具的新旧截图方式
- System76 即将推出的 COSMIC 桌面正在酝酿大变化
- 2GB 内存 8GB 存储即可流畅运行,Windows 11 极致精简版系统 Tiny11 发布
- 迎接 ecode:一个即将推出的具有全新图形用户界面框架的现代、轻量级代码编辑器
- loongarch架构介绍(三)—地址翻译
- Go 语言怎么解决编译器错误“err is shadowed during return”?
- 敏捷:可能被开发人员遗忘的部分
- Denodo预测2023年数据管理和分析的未来
- 利用数据推动可持续发展
- 在 Vue3 中实现 React 原生 Hooks(useState、useEffect),深入理解 React Hooks 的