php-冒泡、快速排序
阿新 • • 發佈:2020-12-23
技術標籤:快速排序
#冒泡 //理解:倆輪迴圈 function bubbleSort($array) { $count = count($array); for ($i = 0; $i < $count; $i++) { //總共迴圈的輪數(組數) for ($j = $count-1; $j > $i; $j --) { //每一組需要比較的次數 if ($array[$j] >= $array[$j-1]) { //倒序:誰大往前放;正序:誰小往前放 $tmp = $array[$j]; $array[$j] = $array[$j - 1]; $array[$j - 1] = $tmp; } } } return $array; }
#快速 //使用遞迴處理 function quickSort($array) { $count = count($array); if ($count <= 1) return $array; $leftArr = $rightArr = []; $first = $array[0]; for ($i = 1; $i < $count; $i++) { if ($array[$i] <= $first) { $leftArr[] = $array[$i]; } else { $rightArr[] = $array[$i]; } } $leftArr = quickSort($leftArr); $rightArr = quickSort($rightArr); return array_merge($leftArr, [$first], $rightArr); }