自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

測試評估:14種排序算法和PHP數(shù)組

開發(fā) 后端 前端 算法
快速排序是實(shí)至名歸的好算法。計(jì)數(shù)排序在小值范圍里表現(xiàn)良好;其他情況因?yàn)榈蛢?nèi)存而應(yīng) 付不來。雞尾酒排序?qū)τ陔S機(jī)值是一個(gè)壞選擇。冒泡排序及其變形并不適合實(shí)際應(yīng)用。

在這篇文章里,我將向大家介紹用PHP寫的排序算法的測試。
以下是14種排序算法:

  • 快速排序
  • 計(jì)數(shù)排序
  • 梳排序
  • 堆排序
  • 歸并排序
  • 希爾排序
  • 選擇排序
  • 插入排序
  • 地精排序
  • 聯(lián)合冒泡排序
  • 雞尾酒排序
  • 冒泡排序
  • 奇偶排序
  • 使用標(biāo)志的冒泡排序

算法不是按字母排序,而是按照它們進(jìn)行8千個(gè)元素排序時(shí)整體速度遞減來排序。

以下是用到的數(shù)組的大小:

  • 1
  • 100
  • 200
  • 400
  • 600
  • 800
  • 1000
  • 5000
  • 10000
  • 15000
  • 20000
  • 25000
  • 30000

每次測量都用不同大小的數(shù)組,然后傳入排序函數(shù)。

  • ***種情況下,數(shù)組被隨機(jī)填充(1,N)之間的值,其中N指數(shù)組的大小。
  • 第二種情況下,數(shù)組被隨機(jī)填充(1,PHP_INT_MAX)之間的值,其中PHP_INT_MAX是指當(dāng)前系統(tǒng)中INT類型的***值,在我的系統(tǒng)中為2^63或大約為9.2233720368548E+18。

每種測試進(jìn)行3次,然后取其算術(shù)平均值。

1000個(gè)元素的數(shù)組

在當(dāng)前數(shù)組大小的所有算法排序情況。

30000個(gè)元素的數(shù)組

此時(shí),5種最快的算法進(jìn)行測試:計(jì)數(shù)排序,快速排序,梳排序,堆排序和歸并排序。

200000個(gè)元素的數(shù)組

此時(shí),5種最快的算法進(jìn)行測試:計(jì)數(shù)排序,快速排序,梳排序,堆排序和歸并排序。

2000000個(gè)元素的數(shù)組

在***一輪2000000個(gè)元素的測試中,只有2種算法進(jìn)行測試:計(jì)數(shù)排序和快速排序。

總結(jié)

快速排序是實(shí)至名歸的好算法。計(jì)數(shù)排序在小值范圍里表現(xiàn)良好;其他情況因?yàn)榈蛢?nèi)存而應(yīng) 付不來。雞尾酒排序?qū)τ陔S機(jī)值是一個(gè)壞選擇。冒泡排序及其變形并不適合實(shí)際應(yīng)用。

所有算法的源代碼+結(jié)果:https://drive.google.com/file/d/0B63HSL7JD630VWdSSFgwdHR5RkU/edit?usp=sharing

使用內(nèi)置排序函數(shù)是一個(gè)有趣的練習(xí)。使用解釋型的PHP來寫排序函數(shù)永遠(yuǎn)也快不過sort() 采用的C變體。

原文鏈接: ahwoobachairiesaas   翻譯: 伯樂在線 - hoikin-yiu

譯文鏈接: http://blog.jobbole.com/68774/

責(zé)任編輯:林師授 來源: 伯樂在線
相關(guān)推薦

2015-03-19 15:13:20

PHP基本排序算法代碼實(shí)現(xiàn)

2009-11-16 16:17:45

PHP數(shù)組排序

2009-11-16 17:35:38

PHP數(shù)組排序

2009-11-30 18:59:52

PHP數(shù)組排序

2009-11-17 11:06:37

PHP排序

2009-11-20 09:24:10

PHP多維數(shù)組排序

2009-11-24 10:31:22

PHP函數(shù)sort()

2009-11-18 11:30:26

PHP數(shù)組排序

2009-11-16 16:23:10

PHP數(shù)組遍歷

2009-11-16 17:20:04

PHP多維數(shù)組排序

2021-09-02 11:49:41

基數(shù)算法技巧

2009-11-24 17:45:47

PHP數(shù)組排序函數(shù)ar

2021-06-24 17:55:40

Python 開發(fā)編程語言

2009-11-17 09:17:49

PHP多維數(shù)組排序

2009-08-26 18:14:11

C#排序算法

2023-04-03 07:33:05

數(shù)組排序快速排序法

2009-11-17 16:09:04

PHP二維數(shù)組排序

2021-03-22 08:00:00

PHP開發(fā)框架

2009-11-18 16:47:50

PHP遞歸算法

2009-09-08 17:20:01

C#排序算法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)