![php堆排序?qū)崿F(xiàn)原理與應(yīng)用方法__第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-7/15/510e3b19-7a4f-40bb-8134-85e6a1b2ab32/510e3b19-7a4f-40bb-8134-85e6a1b2ab321.gif)
![php堆排序?qū)崿F(xiàn)原理與應(yīng)用方法__第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-7/15/510e3b19-7a4f-40bb-8134-85e6a1b2ab32/510e3b19-7a4f-40bb-8134-85e6a1b2ab322.gif)
![php堆排序?qū)崿F(xiàn)原理與應(yīng)用方法__第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-7/15/510e3b19-7a4f-40bb-8134-85e6a1b2ab32/510e3b19-7a4f-40bb-8134-85e6a1b2ab323.gif)
![php堆排序?qū)崿F(xiàn)原理與應(yīng)用方法__第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-7/15/510e3b19-7a4f-40bb-8134-85e6a1b2ab32/510e3b19-7a4f-40bb-8134-85e6a1b2ab324.gif)
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、php堆排序?qū)崿F(xiàn)原理與應(yīng)用方法_ 這篇文章主要介紹了php堆排序?qū)崿F(xiàn)原理與應(yīng)用方法,較為具體的分析了堆排序的原理及用法技巧,具有肯定參考借鑒價(jià)值,需要的伴侶可以參考下 本文實(shí)例講解并描述了php堆排序?qū)崿F(xiàn)原理與應(yīng)用方法。分享給大家供大家參考。具體分析如下: 這里以php作為描述語(yǔ)言較具體講解堆排序原理,因保證程序可讀性,故不做優(yōu)化,php程序中關(guān)于堆的一些概念如下: 假設(shè)n為當(dāng)前數(shù)組的key則,n的父節(jié)點(diǎn)為 n1 或者 n/2(整除);n的左子節(jié)點(diǎn)l= n1 或 l=n*2,n的右子節(jié)點(diǎn)r=(n1)+1 或 r=l+1 $arr=array(1,8,7,2,3,4,6,5,9); 數(shù)組$arr
2、的原形態(tài)結(jié)構(gòu)如下: 1 / 8 7 / / 2 3 4 6 / 5 9 heapsort($arr);print_r($arr); 排序后生成標(biāo)準(zhǔn)的小頂堆結(jié)構(gòu)如下: 1 / 2 3 / / 4 5 6 7 / 8 9 既數(shù)組:array(1,2,3,4,5,6,7,8,9): 代碼如下: function heapsort($arr) /求最終一個(gè)元素位 $last=count($arr); /堆排序中通常忽視$arr0 array_unshift($arr,0); /最終一個(gè)非葉子節(jié)點(diǎn) $i=$last1; /整理成大頂堆,最大的數(shù)整到堆頂,并將最大數(shù)和堆尾交換,并在之后的計(jì)算中忽視數(shù)組后端
3、的最大數(shù)(last),直到堆頂(last=堆頂) while(true) adjustnode($i,$last,$arr); if($i1) /移動(dòng)節(jié)點(diǎn)指針,遍歷全部非葉子節(jié)點(diǎn) $i-; else /臨界點(diǎn)last=1,既全部排序完成 if($last=1)break; /當(dāng)i為1時(shí)表示每一次的堆整理都將得到最大數(shù)(堆頂,$arr1),重復(fù)在根節(jié)點(diǎn)調(diào)整堆 swap($arr$last,$arr1); /在數(shù)組尾部按大小挨次保留最大數(shù),定義臨界點(diǎn)last,以免整理堆時(shí)重新打亂數(shù)組后面已排序好的元素 $last-; /彈出第一個(gè)數(shù)組元素 array_shift($arr); /整理當(dāng)前樹(shù)節(jié)點(diǎn)($
4、n),臨界點(diǎn)$last之后為已排序好的元素 function adjustnode($n,$last,$arr) $l=$n1; /$n的左孩子位 if(!isset($arr$l)|$l$last) return ; $r=$l+1; /$n的右孩子位 /假如右孩子比左孩子大,則讓父節(jié)點(diǎn)的右孩子比 if($r=$last$arr$r$arr$l) $l=$r; /假如其中子節(jié)點(diǎn)$l比父節(jié)點(diǎn)$n大,則與父節(jié)點(diǎn)$n交換 if($arr$l$arr$n) /子節(jié)點(diǎn)($l)的值與父節(jié)點(diǎn)($n)的值交換 swap($arr$l,$arr$n); /交換后父節(jié)點(diǎn)($n)的值($arr$n)可能還小于原子節(jié)點(diǎn)($l)的子節(jié)點(diǎn)的值,所以還需對(duì)原子節(jié)點(diǎn)($l)的子節(jié)點(diǎn)進(jìn)行調(diào)整,用遞歸實(shí)現(xiàn) adjustnode($l,$last,$arr); /交換兩個(gè)值 function swap($a,$b)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023七年級(jí)數(shù)學(xué)下冊(cè) 第一章 整式的乘除4 整式的乘法第3課時(shí) 多項(xiàng)式與多項(xiàng)式相乘說(shuō)課稿 (新版)北師大版
- 2024-2025年高中語(yǔ)文 第3單元 5 伶官傳序說(shuō)課稿(含解析)魯人版《唐宋八大家散文選讀》
- 5 分米和毫米第二課時(shí)(說(shuō)課稿)-2023-2024學(xué)年二年級(jí)下冊(cè)數(shù)學(xué)蘇教版
- 2023三年級(jí)數(shù)學(xué)上冊(cè) 一 兩、三位數(shù)乘一位數(shù)第10課時(shí) 乘數(shù)末尾有0的乘法說(shuō)課稿 蘇教版
- 二零二五年度電子商務(wù)平臺(tái)品牌推廣合作協(xié)議書(shū)
- 二零二五年度速凍粘玉米種植基地土地流轉(zhuǎn)合同
- 7權(quán)力受到制約和監(jiān)督 課時(shí)2《權(quán)力運(yùn)行受監(jiān)督》說(shuō)課稿 2024-2025學(xué)年道德與法治六年級(jí)上冊(cè)統(tǒng)編版
- 消費(fèi)者協(xié)議書(shū)(2篇)
- 投資經(jīng)營(yíng)合同(2篇)
- 江西地區(qū)普通高校畢業(yè)生就業(yè)協(xié)議書(shū)(2篇)
- 二零二五版電力設(shè)施維修保養(yǎng)合同協(xié)議3篇
- 最經(jīng)典凈水廠施工組織設(shè)計(jì)
- VDA6.3過(guò)程審核報(bào)告
- 2024-2030年中國(guó)并購(gòu)基金行業(yè)發(fā)展前景預(yù)測(cè)及投資策略研究報(bào)告
- 2024年湖南商務(wù)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)帶答案
- 骨科手術(shù)中常被忽略的操作課件
- 《湖南師范大學(xué)》課件
- 2024年全國(guó)各地中考試題分類(lèi)匯編:作文題目
- 2024年高壓電工操作證考試復(fù)習(xí)題庫(kù)及答案(共三套)
- 《糖拌西紅柿 》 教案()
- 2024-2030年山茶油行業(yè)市場(chǎng)發(fā)展分析及發(fā)展趨勢(shì)與規(guī)劃建議研究報(bào)告
評(píng)論
0/150
提交評(píng)論