测试评估:14种排序算法和PHP数组_PHP教程

php中文网
发布: 2016-07-13 16:54:03
原创
1012人浏览过

在这篇文章里,我将向大家介绍用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个元素的数组

在当前数组大小的所有算法排序情况。

立即学习PHP免费学习笔记(深入)”;

30000个元素的数组

此时,5种最快的算法进行测试:计数排序,快速排序,梳排序,堆排序和归并排序。

AGI-Eval评测社区
AGI-Eval评测社区

AI大模型评测社区

AGI-Eval评测社区 63
查看详情 AGI-Eval评测社区

200000个元素的数组

此时,5种最快的算法进行测试:计数排序,快速排序,梳排序,堆排序和归并排序。

2000000个元素的数组

在最后一轮2000000个元素的测试中,只有2种算法进行测试:计数排序和快速排序。

总结

快速排序是实至名归的好算法。计数排序在小值范围里表现良好;其他情况因为低内存而应 付不来。鸡尾酒排序对于随机值是一个坏选择。冒泡排序及其变形并不适合实际应用。

所有算法的源代码+结果:https://drive.google.com/file/d/0B63HSL7JD630VWdSSFgwdHR5RkU/edit?usp=sharing

使用内置排序函数是一个有趣的练习。使用解释型的PHP来写排序函数永远也快不过sort() 采用的C变体。

译文链接: http://blog.jobbole.com/68774/

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/778654.htmlTechArticle在这篇文章里,我将向大家介绍用PHP写的排序算法的测试。 以下是14种排序算法: 快速排序 计数排序 梳排序 堆排序 归并排序 希尔排序...
相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号