這篇文章運(yùn)用了實(shí)例代碼展示php常見的排序方法,代碼非常詳細(xì),可供感興趣的小伙伴們參考借鑒,希望對(duì)大家有所幫助。
我們一直強(qiáng)調(diào)成都做網(wǎng)站、網(wǎng)站制作對(duì)于企業(yè)的重要性,如果您也覺得重要,那么就需要我們慎重對(duì)待,選擇一個(gè)安全靠譜的網(wǎng)站建設(shè)公司,企業(yè)網(wǎng)站我們建議是要么不做,要么就做好,讓網(wǎng)站能真正成為企業(yè)發(fā)展過程中的有力推手。專業(yè)網(wǎng)站設(shè)計(jì)公司不一定是大公司,創(chuàng)新互聯(lián)公司作為專業(yè)的網(wǎng)絡(luò)公司選擇我們就是放心。
PHP有多種排序方法,本篇文章給大家介紹幾種常見的排序方法:冒泡排序、交換法排序、選擇法排序、插入法排序、快速排序。希望對(duì)大家有所幫助。
排序方法1:冒泡排序
function BubbleSort($arr) { // 獲得數(shù)組總長(zhǎng)度 $num = count($arr); // 正向遍歷數(shù)組 for ($i = 1; $i < $num; $i++) { // 反向遍歷 for ($j = $num - 1; $j >= $i ; $j--) { // 相鄰兩個(gè)數(shù)比較 if ($arr[$j] < $arr[$j-1]) { // 暫存較小的數(shù) $iTemp = $arr[$j-1]; // 把較大的放前面 $arr[$j-1] = $arr[$j]; // 較小的放后面 $arr[$j] = $iTemp; } } } return $arr; }
排序方法2:交換法排序
function ExchangeSort($arr){ $num = count($arr); // 遍歷數(shù)組 for ($i = 0;$i < $num - 1; $i++) { // 獲得當(dāng)前索引的下一個(gè)索引 for ($j = $i + 1; $j < $num; $j++) { // 比較相鄰兩個(gè)的值大小 if ($arr[$j] < $arr[$i]) { // 暫存較小的數(shù) $iTemp = $arr[$i]; // 把較大的放前面 $arr[$i] = $arr[$j]; // 較小的放后面 $arr[$j] = $iTemp; } } } return $arr; }
排序方法3:選擇法排序
function SelectSort($arr) { // 獲得數(shù)組總長(zhǎng)度 $num = count($arr); // 遍歷數(shù)組 for ($i = 0;$i < $num-1; $i++) { // 暫存當(dāng)前值 $iTemp = $arr[$i]; // 暫存當(dāng)前位置 $iPos = $i; // 遍歷當(dāng)前位置以后的數(shù)據(jù) for ($j = $i + 1;$j < $num; $j++){ // 如果有小于當(dāng)前值的 if ($arr[$j] < $iTemp) { // 暫存最小值 $iTemp = $arr[$j]; // 暫存位置 $iPos = $j; } } // 把當(dāng)前值放到算好的位置 $arr[$iPos] = $arr[$i]; // 把當(dāng)前值換成算好的值 $arr[$i] = $iTemp; } return $arr; }
排序方法4:插入法排序
function InsertSort($arr){ $num = count($arr); // 遍歷數(shù)組 for ($i = 1;$i < $num; $i++) { // 獲得當(dāng)前值 $iTemp = $arr[$i]; // 獲得當(dāng)前值的前一個(gè)位置 $iPos = $i - 1; // 如果當(dāng)前值小于前一個(gè)值切未到數(shù)組開始位置 while (($iPos >= 0) && ($iTemp < $arr[$iPos])) { // 把前一個(gè)的值往后放一位 $arr[$iPos + 1] = $arr[$iPos]; // 位置遞減 $iPos--; } $arr[$iPos+1] = $iTemp; } return $arr; }
排序方法5:快速排序
function QuickSort($arr){ $num = count($arr); $l = $r = 0; $left = $right = array(); // 從索引的第二個(gè)開始遍歷數(shù)組 for ($i = 1;$i < $num; $i++) { // 如果值小于索引1 if ($arr[$i] < $arr[0]) { // 裝入左索引數(shù)組(小于索引1的數(shù)據(jù)) $left[] = $arr[$i]; $l++; } else { // 否則裝入右索引中(大于索引1的數(shù)據(jù)) $right[] = $arr[$i]; $r++; // } } // 如果左索引有值 則對(duì)左索引排序 if($l > 1) { $left = QuickSort($left); } // 排序后的數(shù)組 $new_arr = $left; // 將當(dāng)前數(shù)組第一個(gè)放到最后 $new_arr[] = $arr[0]; // 如果又索引有值 則對(duì)右索引排序 if ($r > 1) { $right = QuickSort($right); } // 根據(jù)右索引的長(zhǎng)度再次增加數(shù)據(jù) for($i = 0;$i < $r; $i++) { $new_arr[] = $right[$i]; } return $new_arr; }
看完上述內(nèi)容,你們對(duì)php常見的排序方法有進(jìn)一步的了解嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀。!
名稱欄目:php常見的排序方法有哪些
分享網(wǎng)址:http://bm7419.com/article12/jcihdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、靜態(tài)網(wǎng)站、商城網(wǎng)站、App設(shè)計(jì)、用戶體驗(yàn)、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)