【PHP】冒泡排序

<?php

/** * 冒泡排序算法 * @param array $arr * @return array */
function bubble_sort($arr) { 
    // 判斷參數是否爲數組,且不爲空
    if (!is_array($arr) || empty($arr)) { 
        return $arr;
    }
    // 循環須要冒泡的輪數
    for ($i = 1, $len = count($arr); $i < $len; $i++) { 
        // 循環每輪須要比較的次數
        for ($j = 0; $j < $len - $i; $j++) { 
            // 大的數字 日後挪
            if ($arr[$j] > $arr[$j + 1]) { 
            	// 當第一個數比第二數大,先把小的數保存起來
                $temp = $arr[$j + 1];
                // 把大的索引值改成大值
                $arr[$j + 1] = $arr[$j];
                // 而後把小的值賦給索引小的便可
                $arr[$j] = $temp;
            }
        }
    }
    var_dump($arr);
}

$arr = [1,5,6,8,4,3,2];

bubble_sort($arr);
相關文章
相關標籤/搜索