PHP實(shí)現(xiàn)四種基礎(chǔ)排序算法的運(yùn)行時(shí)間比較(推舉)__第1頁
PHP實(shí)現(xiàn)四種基礎(chǔ)排序算法的運(yùn)行時(shí)間比較(推舉)__第2頁
PHP實(shí)現(xiàn)四種基礎(chǔ)排序算法的運(yùn)行時(shí)間比較(推舉)__第3頁
PHP實(shí)現(xiàn)四種基礎(chǔ)排序算法的運(yùn)行時(shí)間比較(推舉)__第4頁
PHP實(shí)現(xiàn)四種基礎(chǔ)排序算法的運(yùn)行時(shí)間比較(推舉)__第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、PHP實(shí)現(xiàn)四種基礎(chǔ)排序算法的運(yùn)行時(shí)間比較(推舉)_ 很多人都說算法是程序的核心,算法的好壞決定了程序的質(zhì)量。作為一個(gè)初級phper,雖然很少接觸到算法方面的東西。但是對于基本的排序算法還是應(yīng)當(dāng)把握的,它是程序開發(fā)的必備工具。下面通過本文給大家介紹PHP實(shí)現(xiàn)四種基礎(chǔ)排序算法的運(yùn)行時(shí)間比較,一起看下吧。 挺直給大家貼代碼了。 具體代碼如下所示: /* * php四種基礎(chǔ)排序算法的運(yùn)行時(shí)間比較 * authors Jesse (jesse152) * date 2021-08-11 07:12:14 */ /冒泡排序法 function bubbleSort($array) $temp = 0; f

2、or($i = 0;$i count($array) -1;$i+) for($j = 0;$j count($array) - 1 -$i;$j+) if($array$j $array$j+1) /從小到大排列 $temp = $array$j; $array$j = $array$j+1; $array$j+1 = $temp; /選擇排序法 function selectSort($array) $temp = 0; for($i = 0;$i count($array) - 1;$i+) $minVal = $array$i; /假設(shè)$i就是最小值 $minValIndex = $i

3、; for($j = $i+1;$j count($array);$j+) if($minVal $array$j) /從小到大排列 $minVal = $array$j; /找最小值 $minValIndex = $j; $temp = $array$i; $array$i = $array$minValIndex; $array$minValIndex = $temp; /插入排序法 function insertSort($array) /從小到大排列 /先默認(rèn)$array0,已經(jīng)有序,是有序表 for($i = 1;$i count($array);$i+) $insertVal =

4、$array$i; /$insertVal是預(yù)備插入的數(shù) $insertIndex = $i - 1; /有序表中預(yù)備比較的數(shù)的下標(biāo) while($insertIndex = 0 $insertVal $array$insertIndex) $array$insertIndex + 1 = $array$insertIndex; /將數(shù)組往后挪 $insertIndex-; /將下標(biāo)往前挪,預(yù)備與前一個(gè)進(jìn)行比較 if($insertIndex + 1 != $i) $array$insertIndex + 1 = $insertVal; /快速排序法 function quickSort($a

5、rray) if(!isset($array1) return $array; $mid = $array0; /獵取一個(gè)用于分割的關(guān)鍵字,一般是首個(gè)元素 $leftArray = array(); $rightArray = array(); foreach($array as $v) if($v $mid) $rightArray = $v; /把比$mid大的數(shù)放到一個(gè)數(shù)組里 if($v $mid) $leftArray = $v; /把比$mid小的數(shù)放到另一個(gè)數(shù)組里 $leftArray = quickSort($leftArray); /把比較小的數(shù)組再一次進(jìn)行分割 $leftAr

6、ray = $mid; /把分割的元素加到小的數(shù)組后面,不能忘了它哦 $rightArray = quickSort($rightArray); /把比較大的數(shù)組再一次進(jìn)行分割 return array_merge($leftArray,$rightArray); /組合兩個(gè)結(jié)果 $a = array_rand(range(1,3000), 1600); /生成1600個(gè)元素的隨機(jī)數(shù)組 shuffle($a); /打亂數(shù)組的挨次 $t1 = microtime(true); bubbleSort($a); /冒泡排序 $t2 = microtime(true); echo 冒泡排序用時(shí):.($t2-$t1)*1000).ms.n; $t3 = microtime(true); selectSort($a); /選擇排序 $t4 = microtime(true); echo 選擇排序用時(shí):.($t4-$t3)*1000).ms.n; $t5 = microtime(true); insertSort($a); /插入排序 $t6 = microtime(true); echo 插入排序用時(shí):.($t6-$t5)*1000).ms.n; $t7 = microtime(true); quickSort($a)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論