在前面的文章中,我們介紹了PHP演算法系列的《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為大家更直觀地調試運行冒泡排序演算法的實現過程。
以上是PHP冒泡排序演算法(一)的詳細內容。更多資訊請關注PHP中文網其他相關文章!