<?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);