PHP對一組數進行重新排列(冒泡演算法)

2020-07-16 10:06:13

如何對已知陣列 $arr = [24,69,80,57,13] 進行按重新順序排序。

思路:

1、我們需要對陣列中每兩個,前後進行比較,如果前面小於後面的,就進行兌換位置;

2、因為是兩個一比較,所以我們需要比較count($arr) - 1 輪,因為每一輪比較下來,都可以確定一個最大的值,所以每一輪就會減少一次。

圖示:

468d3d0c35f25d61c1b16d042871edf.png

程式碼:

//定義陣列
$arr = [24,69,80,57,13];
//定義一個臨時變數
$temp = 0;
//第一層迴圈,外層迴圈,迴圈count($arr) - 1 次(可以遍歷到每一個陣列值)
for ($i1=0; $i1 < count($arr); $i1++) { 
    //第二層迴圈,內層迴圈,每一次外層迴圈內,再次迴圈,迴圈次數依次減少一次(每次回圈結束,可以獲取到一個最大值)
    for ($i=0; $i < count($arr) - 1; $i++) {
        //判斷條件,滿足即交換值 
        if($arr[$i] > $arr[$i + 1]){
            //臨時儲存滿足條件的變數值
            $temp = $arr[$i];
            //重新賦值
            $arr[$i] = $arr[$i + 1];
            //重新賦值
            $arr[$i + 1] = $temp;
        }
    }
}
//輸出排列後的陣列
echo '<pre>';
var_dump($arr);

最終結果為:

96ac690b0cc757814dff95f177d21d6.png

以上就是PHP對一組數進行重新排列(冒泡演算法)的詳細內容,更多請關注TW511.COM其它相關文章!