下載本文檔
版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二四年區(qū)塊鏈技術(shù)研究與應(yīng)用合同
- 個(gè)性化證券投資建議服務(wù)合同版B版
- 2025年度光伏發(fā)電項(xiàng)目出渣車輛勞務(wù)分包合同范本4篇
- 2025版事業(yè)單位勞動(dòng)合同書(2025年度)-試用期管理細(xì)則3篇
- 2025年度個(gè)人股權(quán)托管與退出合同4篇
- 2025年度大產(chǎn)權(quán)房屋買賣合同解除合同3篇
- 2025版美發(fā)店設(shè)備采購合同范本集錦
- 二零二五版定制門窗行業(yè)國際市場開拓合同4篇
- 二零二五版建筑廢棄物資源化利用與處理工程承包合同3篇
- 2025年度教育培訓(xùn)代銷合同模板4篇
- 2025年度版權(quán)授權(quán)協(xié)議:游戲角色形象設(shè)計(jì)與授權(quán)使用3篇
- 心肺復(fù)蘇課件2024
- 《城鎮(zhèn)燃?xì)忸I(lǐng)域重大隱患判定指導(dǎo)手冊》專題培訓(xùn)
- 湖南財(cái)政經(jīng)濟(jì)學(xué)院專升本管理學(xué)真題
- 全國身份證前六位、區(qū)號、郵編-編碼大全
- 2024-2025學(xué)年福建省廈門市第一中學(xué)高一(上)適應(yīng)性訓(xùn)練物理試卷(10月)(含答案)
- 《零售學(xué)第二版教學(xué)》課件
- 廣東省珠海市香洲區(qū)2023-2024學(xué)年四年級下學(xué)期期末數(shù)學(xué)試卷
- 房地產(chǎn)行業(yè)職業(yè)生涯規(guī)劃
- 江蘇省建筑與裝飾工程計(jì)價(jià)定額(2014)電子表格版
- MOOC 數(shù)字電路與系統(tǒng)-大連理工大學(xué) 中國大學(xué)慕課答案
評論
0/150
提交評論