




下載本文檔
版權(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)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CGMA 031003-2020一般用離心空氣壓縮機(jī)
- T/CGAS 006-2019基于窄帶物聯(lián)網(wǎng)(NB-IoT)技術(shù)的燃?xì)庵悄艹硐到y(tǒng)
- T/CECS 10290-2023室內(nèi)裝飾裝修用美容膠
- T/CECS 10272-2023表層混凝土滲透性原位測試方法
- T/CECS 10026-2019綠色建材評價(jià)建筑門窗及配件
- T/CCMA 0122-2021瀝青混凝土攤鋪機(jī)螺旋布料裝置
- T/CBMCA 039-2023陶瓷大板巖板裝修鑲貼應(yīng)用規(guī)范
- T/CAQI 347-2023堤防安全管理應(yīng)急預(yù)案編制導(dǎo)則
- T/CAQI 180-2021具有消毒功能的新風(fēng)凈化機(jī)技術(shù)要求和試驗(yàn)方法
- 武漢方正璞華java開發(fā)面試題及答案
- 柴油安全技術(shù)說明書(MSDS)
- 哺乳期的乳房護(hù)理課件
- 華為財(cái)務(wù)管理(6版)-華為經(jīng)營管理叢書
- 2023年四川省綿陽市中考英語試卷真題(含答案)
- 藥物咨詢記錄
- 【汽車萬向傳動(dòng)軸的設(shè)計(jì)5200字(論文)】
- 發(fā)電機(jī)組行業(yè)商業(yè)計(jì)劃書
- 《公路斜拉橋設(shè)計(jì)規(guī)范》(JTGT 3365-01-2020)正式版
- 南京市小學(xué)英語六年級小升初期末試卷(含答案)
- 脫碳塔CO2脫氣塔設(shè)計(jì)計(jì)算
- 國開電大本科《理工英語3》機(jī)考真題(第005套)
評論
0/150
提交評論