PHP

php快速排序算法复杂度

小樊
82
2024-12-02 12:17:53
栏目: 编程语言

快速排序是一种高效的排序算法,其平均时间复杂度为O(n log n),最坏情况下的时间复杂度为O(n^2)。以下是快速排序的相关信息:

快速排序的基本步骤

  1. 选择基准值:从数列中选取一个元素作为基准值。
  2. 划分操作:重新排列数列,所有比基准值小的元素摆放在基准前面,所有比基准值大的元素摆放在基准的后面。
  3. 递归排序子序列:递归地将小于基准值元素的子序列和大于基准值元素的子序列排序。

快速排序的实现示例(PHP)

function quickSort(&$array, $i, $j) {
    if ($i > $j) {
        return;
    }
    $key = $array[$i];
    $left = $i;
    $right = $j;
    while ($i != $j) {
        while ($array[$j] >= $key && $i < $j) {
            $j--;
        }
        while ($array[$i] <= $key && $i < $j) {
            $i++;
        }
        if ($i < $j) {
            $temp = $array[$i];
            $array[$i] = $array[$j];
            $array[$j] = $temp;
        }
    }
    $array[$left] = $array[$i];
    $array[$i] = $key;
    quickSort($array, $left, $i - 1);
    quickSort($array, $i + 1, $right);
}

$array = [6, 12, 9, 2, 2, 33, 822, 12, 4, 22, 3, 2, 1, 7, 9, 8, 7, 7, 7, 7];
quickSort($array, 0, count($array) - 1);
print_r($array);

快速排序的性能优化技巧

通过上述方法和优化技巧,可以提升快速排序在PHP中的效率和性能。

0
看了该问题的人还看了