冒泡排序算法_PHP冒泡排序算法(一)
·點擊藍字關注我們!每天獲取最新的編程小知識!
源 /?php中文網? ????源 /?www.php.cn
在前面的文章中,我們給大家介紹了PHP算法系列之《PHP隨機取一算法》。今天我們繼續為大家講解常見的PHP算法系列的相關知識點,即PHP冒泡排序算法。
(視頻版請點擊本文末尾左下角:
冒泡排序,相信對于編程人員來說并不陌生。冒泡排序算法簡單來說就是依次比較相鄰的兩個數,然后根據大小做出排序,直至最后兩位數。
那么之所以稱為“冒泡排序”算法是因為越大的元素會經由交換慢慢“浮”到數列的頂端(升序或降序排列),就如同碳酸飲料中二氧化碳的氣泡最終會上浮到頂端一樣。
下面我們就結合具體的代碼示例,給大家介紹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));
這里我們定義了一個maopao方法,首先我們通過count函數統計出指定數組的總長度。 然后使用雙重for循環語句循環遍歷數組元素并逐一比較,那么外層for循環就是用來控制循環輪次;內層for循環就是控制每輪的比較次數,并且在每輪比較后選出最大的一個值放在最后。
注意:這里我們通過臨時變量$temp介質來存貯$j的值,以此循環比較兩個相鄰的元素,并把大的值放在后面。
輸出:
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
總結冒泡排序的算法原理:對一組數據,比較相鄰數據的大小,將值小數據在前面,值大的數據放在后面。
本篇文章就是關于PHP冒泡排序算法的介紹,在下篇文章《PHP冒泡排序算法(二)》中,我們將通過Xdebug為大家更直觀地調試運行冒泡排序算法的實現過程。
-END-
聲明:本文選自「?php中文網?」,搜索「 phpcnnew 」即可關注!
▼
總結
以上是生活随笔為你收集整理的冒泡排序算法_PHP冒泡排序算法(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: securecrt是什么工具_网络总出故
- 下一篇: postgresql主从备份_基于PG1