function bubbleSort($array) { if (empty($array)) return false; $count = count($array); for ($i = $count - 1; $i > 0; $i--) { $flag = 0; // 初始化标记为0 // 将数组中最大的值放在末尾 for ($j = 0; $j < $i; $j++) { if ($array[$j] > $array[$j + 1]) { // 交换值 $item = $array[$j]; $array[$j] = $array[$j + 1]; $array[$j + 1] = $item; // 若发生交换,则设标记为1 $flag = 1; } } // 若没发生交换,则说明数列已有序。 if (!$flag) break; } return $array; }
例子:
bubbleSort([20, 40, 30, 10, 60, 50]);