




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、PHP實現(xiàn)四種基礎排序算法的運行時間比較(推舉)_ 很多人都說算法是程序的核心,算法的好壞決定了程序的質量。作為一個初級phper,雖然很少接觸到算法方面的東西。但是對于基本的排序算法還是應當把握的,它是程序開發(fā)的必備工具。下面通過本文給大家介紹PHP實現(xiàn)四種基礎排序算法的運行時間比較,一起看下吧。 挺直給大家貼代碼了。 具體代碼如下所示: /* * php四種基礎排序算法的運行時間比較 * 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; /假設$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) /從小到大排列 /先默認$array0,已經有序,是有序表 for($i = 1;$i count($array);$i+) $insertVal =
4、$array$i; /$insertVal是預備插入的數(shù) $insertIndex = $i - 1; /有序表中預備比較的數(shù)的下標 while($insertIndex = 0 $insertVal $array$insertIndex) $array$insertIndex + 1 = $array$insertIndex; /將數(shù)組往后挪 $insertIndex-; /將下標往前挪,預備與前一個進行比較 if($insertIndex + 1 != $i) $array$insertIndex + 1 = $insertVal; /快速排序法 function quickSort($a
5、rray) if(!isset($array1) return $array; $mid = $array0; /獵取一個用于分割的關鍵字,一般是首個元素 $leftArray = array(); $rightArray = array(); foreach($array as $v) if($v $mid) $rightArray = $v; /把比$mid大的數(shù)放到一個數(shù)組里 if($v $mid) $leftArray = $v; /把比$mid小的數(shù)放到另一個數(shù)組里 $leftArray = quickSort($leftArray); /把比較小的數(shù)組再一次進行分割 $leftAr
6、ray = $mid; /把分割的元素加到小的數(shù)組后面,不能忘了它哦 $rightArray = quickSort($rightArray); /把比較大的數(shù)組再一次進行分割 return array_merge($leftArray,$rightArray); /組合兩個結果 $a = array_rand(range(1,3000), 1600); /生成1600個元素的隨機數(shù)組 shuffle($a); /打亂數(shù)組的挨次 $t1 = microtime(true); bubbleSort($a); /冒泡排序 $t2 = microtime(true); echo 冒泡排序用時:.($t2-$t1)*1000).ms.n; $t3 = microtime(true); selectSort($a); /選擇排序 $t4 = microtime(true); echo 選擇排序用時:.($t4-$t3)*1000).ms.n; $t5 = microtime(true); insertSort($a); /插入排序 $t6 = microtime(true); echo 插入排序用時:.($t6-$t5)*1000).ms.n; $t7 = microtime(true); quickSort($a)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 居間方房屋出租合同
- 關聯(lián)企業(yè)借款合同協(xié)議書
- 工廠臨時工勞動合同
- 影視動畫制作合同書
- 個體采購合同
- 職代會協(xié)議工資合同
- 申通快遞承包協(xié)議合同
- 合同解除退費協(xié)議
- 工程合同附加協(xié)議
- 鋼筋班組分包合同協(xié)議書
- 河南省南陽市新未來聯(lián)考2024-2025學年高一下學期4月期中物理試題(含解析)
- 2025年醫(yī)保政策考試:醫(yī)?;颊邫嘁姹U现R競賽試題庫
- 2025年江蘇省期無錫市天一實驗校初三5月模擬英語試題含答案
- 公路養(yǎng)護員工安全教育培訓
- 基礎染發(fā)培訓課件
- 2025年法律職業(yè)資格考試民法專項練習卷:民法法條理解與應用題庫:婚姻家庭法
- 2025年4月自考00015英語二(13000英語專升本)押題及答案
- 中國大唐集團有限公司陸上風電工程標桿造價指標(2023年)
- 甘肅展廳投影機施工方案
- 2025年園林綠化工職業(yè)技能競賽理論考試指導題庫參考500題(含答案)
- 國望液晶數(shù)顯切紙機安全操作規(guī)程
評論
0/150
提交評論