在前面的文章中,我們介紹了PHP演算法系列的《PHP隨機(jī)取一演算法".今天我們繼續(xù)為大家講解常見的PHP演算法系列的相關(guān)知識(shí)點(diǎn),即PHP冒泡排序演算法。
冒泡排序,相信對(duì)程式設(shè)計(jì)人員來說並不陌生。冒泡排序演算法簡(jiǎn)單來說就是依序比較相鄰的兩個(gè)數(shù),然後根據(jù)大小做出排序,直到最後兩位數(shù)。
那麼之所以稱為「冒泡排序」演算法是因?yàn)樵酱蟮脑貢?huì)經(jīng)由交換慢慢「浮」到數(shù)列的頂端(升序或降序排列),就如同碳酸飲料中二氧化碳的氣泡最終會(huì)上浮到頂端一樣。
下面我們就結(jié)合具體的程式碼範(fàn)例,跟大家介紹PHP冒泡排序演算法的實(shí)作。 (以下是升序排列,即從小到大排列)
程式碼範(fàn)例如下:
<?php function maopao($arr){ $len = count($arr); for($k=0;$k<=$len;$k++) { for($j=$len-1;$j>$k;$j--){ if($arr[$j]<$arr[$j-1]){ $temp = $arr[$j]; $arr[$j] = $arr[$j-1]; $arr[$j-1] = $temp; } } } return $arr; } $arr = [2,6,2,8,2,34,5,9,2341,23]; var_dump(maopao($arr));
這裡我們定義了一個(gè)maopao方法,首先我們透過count函數(shù)統(tǒng)計(jì)出指定數(shù)組的總長(zhǎng)度。然後使用雙重for迴圈語(yǔ)句循環(huán)遍歷數(shù)組元素並逐一比較,那麼外層for迴圈就是用來控制迴圈輪次;內(nèi)層for迴圈就是控制每輪的比較次數(shù),並且在每輪比較後選出最大的一個(gè)值放在最後。
注意:這裡我們透過臨時(shí)變數(shù)$temp介質(zhì)來存貯$j的值,以此循環(huán)比較兩個(gè)相鄰的元素,並把大的值放在後面。
輸出:
array (size=10) 0 => int 2 1 => int 2 2 => int 2 3 => int 5 4 => int 6 5 => int 8 6 => int 9 7 => int 23 8 => int 34 9 => int 2341
總結(jié)冒泡排序的演算法原理:對(duì)一組數(shù)據(jù),比較相鄰數(shù)據(jù)的大小,將值小數(shù)據(jù)在前面,值大的數(shù)據(jù)放在後面。
這篇文章就是關(guān)於PHP冒泡排序演算法的介紹,在下篇文章《PHP冒泡排序演算法(二)》中,我們將透過Xdebug為大家更直觀地調(diào)試運(yùn)行冒泡排序演算法的實(shí)現(xiàn)過程。
以上是PHP冒泡排序演算法(一)的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁(yè)開發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)
