当前位置: 首页 > 科技观察

测试评测:14种排序算法与PHP数组

时间:2023-03-18 00:17:54 科技观察

本文将介绍用PHP编写的排序算法的测试。以下是14种排序算法:QuickSortCountingSortCombSortHeapSortMergeSortHillSortSelectionSortInsertionSortGoblinSortUnionBubbleSortCocktailSortBubbleSortParitySort对8000个元素进行排序时,按照整体速度递减的顺序进行排序。以下是所用数组的大小:1100200400600800100050001000015000200002500030000每次测量使用不同大小的数组,然后传递给排序函数。第一种情况,数组随机填充介于(1,N)之间的值,其中N是数组的大小。第二种情况,数组随机填充(1,PHP_INT_MAX)之间的值,其中PHP_INT_MAX指的是当前系统中INT类型的最大值,在我的系统中是2^63或者9.2233720368548E+左右18。每个试验进行3次,然后取算术平均值。当前数组大小的所有算法排序情况下的1000元素数组。30,000个元素的数组此时,测试了5种最快的算法:计数排序、快速排序、梳排序、堆排序和归并排序。200,000个元素的数组此时,测试了5种最快的算法:计数排序、快速排序、梳排序、堆排序和归并排序。200万元素数组上一轮200万元素测试,只测试了2种算法:计数排序和快速排序。总结Quicksort是当之无愧的算法。计数排序适用于较小的值范围;其他情况由于内存不足而失败。鸡尾酒排序对于随机值来说是一个糟糕的选择。冒泡排序及其变体不适合实际应用。所有算法的源代码+结果:https://drive.google.com/file/d/0B63HSL7JD630VWdSSFgwdHR5RkU/edit?usp=sharing使用内置的排序功能是一个有趣的练习。在解释型PHP中编写排序函数永远不会比sort()使用的C变体更快。原文链接:ahwoobachairiesaas翻译:伯乐在线-hoikin-yiu翻译链接:http://blog.jobbole.com/68774/