在這篇文章裡,我將向大家介紹用PHP寫的排序算法的測試。
以下是14種排序算法:
算法不是按字母排序,而是按照它們進行8千個元素排序時整體速度遞減來排序。
以下是用到的數組的大小:
每次測量都用不同大小的數組,然後傳入排序函數。
每種測試進行3次,然後取其算術平均值。
在當前數組大小的所有算法排序情況。
此時,5種最快的算法進行測試:計數排序,快速排序,梳排序,堆排序和歸並排序。
此時,5種最快的算法進行測試:計數排序,快速排序,梳排序,堆排序和歸並排序。
在最後一輪2000000個元素的測試中,只有2種算法進行測試:計數排序和快速排序。
快速排序是實至名歸的好算法。計數排序在小值范圍裡表現良好;其他情況因為低內存而應 付不來。雞尾酒排序對於隨機值是一個壞選擇。冒泡排序及其變形並不適合實際應用。
所有算法的源代碼+結果:https://drive.google.com/file/d/0B63HSL7JD630VWdSSFgwdHR5RkU/edit?usp=sharing
使用內置排序函數是一個有趣的練習。使用解釋型的PHP來寫排序函數永遠也快不過sort() 采用的C變體。
譯文鏈接: http://blog.jobbole.com/68774/