php实现快速排序 原地排序

    技术2025-01-17  50

    <?php //快速排序 $arr = [5,3,6,8,1,9,4]; function quickSort($arr) { $n = count($arr); quickSortC($arr, 0, $n - 1); return $arr; } function quickSortC(&$arr, $low, $high) { if ($low >= $high) { return; } $mid = partition($arr, $low, $high); quickSortC($arr, $low, $mid - 1); quickSortC($arr, $mid + 1, $high); } function partition(&$arr, $low, $high) { $pivot = $arr[$high]; $i = $low; for ($j = $low; $j < $high; $j++) { if ($arr[$j] < $pivot) { $tmp = $arr[$i]; $arr[$i] = $arr[$j]; $arr[$j] = $tmp; $i ++; } } $tmp = $arr[$i]; $arr[$i] = $arr[$high]; $arr[$high] = $tmp; return $i; } var_dump(quickSort($arr));
    Processed: 0.017, SQL: 9