首頁 每日程式設計 PHP知識 PHP冒泡排序演算法(一)

PHP冒泡排序演算法(一)

Feb 26, 2019 pm 02:37 PM



在前面的文章中,我們介紹了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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)