英文原文:Benchmarks: 14 Sorting Algorithms and PHP Arrays
在这篇文章里,我将向大家介绍用 PHP 写的排序算法的测试。
以下是 14 种排序算法:
算法不是按字母排序,而是按照它们进行 8 千个元素排序时整体速度递减来排序。
以下是用到的数组的大小:
每次测量都用不同大小的数组,然后传入排序函数。
每种测试进行 3 次,然后取其算术平均值。
1000 个元素的数组
在当前数组大小的所有算法排序情况。
30000 个元素的数组
此时,5 种最快的算法进行测试:计数排序,快速排序,梳排序,堆排序和归并排序。
200000 个元素的数组
此时,5 种最快的算法进行测试:计数排序,快速排序,梳排序,堆排序和归并排序。
2000000 个元素的数组
在最后一轮 2000000 个元素的测试中,只有 2 种算法进行测试:计数排序和快速排序。
总结
快速排序是实至名归的好算法。计数排序在小值范围里表现良好;其他情况因为低内存而应付不来。鸡尾酒排序对于随机值是一个坏选择。冒泡排序及其变形并不适合实际应用。
所有算法的源代码+结果:https://drive.google.com/file/d/0B63HSL7JD630VWdSSFgwdHR5RkU/edit
使用内置排序函数是一个有趣的练习。使用解释型的 PHP 来写排序函数永远也快不过 sort () 采用的C变体。
翻译: 伯乐在线 - hoikin-yiu
译文链接: http://blog.jobbole.com/68774/