首頁  >  文章  >  每日程式設計  >  PHP冒泡排序演算法(一)

PHP冒泡排序演算法(一)

藏色散人
藏色散人原創
2019-02-26 14:37:1919525瀏覽



在前面的文章中,我們介紹了PHP演算法系列的《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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn