概念:對乙個陣列進行公升序或降序排列。運用每次比較相鄰資料的大小的方法,將值小資料放在前面(或後面)。
降序舉例:
$arr=[5,2,8,4,7,1,6,3]; //乙個無序的陣列
$count = count($arr); // 陣列長度
for($i=0; $i<$count-1; $i++)
}} return $arr;
輸出結果:[8,7,6,5,4,3,2,1];
踩到的坑:
好多搜尋到的**結果都不正確是因為第一次遍歷的時候$arr的長度沒有-1,導致遍歷結果不對造成的。其實還是對氣泡排序的排序原理不熟:對於乙個長度為n的陣列,我們需要排序 n-1 輪,每 i 輪 要比較 n-i 次。對此我們可以用雙重迴圈語句,外層迴圈控制迴圈輪次,內層迴圈控制每輪的比較次數。(詳細示例可參見下面引用的原文)
引用:
PHP 氣泡排序演算法
演算法說明 氣泡排序大概的意思是依次比較相鄰的兩個數,然後根據大小做出排序,直至最後兩位數。由於在排序過程中總是小數往前放,大數往後放,相當於氣泡往上公升,所以稱作氣泡排序。但其實在實際過程中也可以根據自己需要反過來用,大樹往前放,小數往後放。示例 從小到大 說明 從大到小的話,就把if判斷那裡的大...
PHP氣泡排序演算法
基本概念 氣泡排序的基本概念是 依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即首先比較第1 個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。重複以上過程,仍從第一對數開始比較 因為可能由於第2個數和第3...
php實現排序演算法(一) 氣泡排序 快速排序
好久沒有來練習的自己的演算法技能了以至於很多基本的演算法都快忘記了。以前用c寫的演算法也不多。那麼今天開始吧!以後堅持每天晚上編寫一些簡單的演算法,堅持練習!氣泡排序是最簡單基礎的排序,但是由於好久沒寫 了,一開始寫下去還是不流暢。罪過罪過 氣泡排序原理,每次從待排序的序列裡面選出乙個最大或者最小的...