试图了解2N lnN与Quicksort的比较


13

我正在对Sedgewick的Algorithms一书中的quicksort进行分析。他为quicksort中的比较数创建了以下递归关系,同时对N个不同项目的数组进行了排序。

在此处输入图片说明

我很难理解这一点...我知道任何元素成为枢轴都需要1 / N的概率,并且如果k成为枢轴,那么左子数组将具有k-1个元素,而右子数组数组将包含Nk个元素。

1.分区成本如何变为N + 1?做分区需要N + 1比较吗?

2.Sedgewick说,对于k的每个值,如果将它们相加,则划分元素为k的概率+两个子数组的成本,您将得到上述方程式。

  • 有人可以解释一下,以便那些数学知识(我)较少的人可以理解吗?
  • 具体来说,您如何获得方程式中的第二项?
  • 这个词到底代表什么?

1
答案的一部分,复制自en.wikipedia.org/wiki/Quicksort “因此,对所有可能的分割取平均值,并注意到该分区的比较数为n-1,即输入的所有排列的比较数的平均值序列可以通过解决递归关系来精确估计:“由于某种原因,我们在这里相差2-n-1与n + 1。
工作

Answers:


7

C快速排序的成本函数由两部分组成。第一部分是将数组分为两个“一半”的成本(一半不必大小相等,因此可以用引号引起来)。第二部分是对这两半进行分类的成本。

  1. (N + 1)术语实际上是一个简化术语,来自这些术语

    (N - 1) + 2
    

    这就是快速排序中分区的成本:N-1与枢轴值进行比较,由于分区中的某些边界条件,另外进行了两次比较。

  2. 等式的第二部分包括对枢轴值两侧的两个“一半”进行排序的成本k

    选择枢轴值后,剩下两个未排序的“一半”。对这些“一半”进行分类的成本取决于它们的大小,最容易描述为成本函数的递归应用C。如果枢轴是N值中的最小值,则对两个“一半”中的每一个进行排序的成本分别为C(0)C(N-1)(对具有0个元素的数组进行排序的成本和对具有元素的一个数组进行排序的成本N-1)。如果枢轴是第五最小,则用于分选所述两个“半部”的成本分别是C(5)C(N-6)(用于分选具有5个元素的阵列,并且用于分拣一个与所述成本的成本N-6要素)。同样,对于所有其他枢轴值。

    但是,如果您不知道关键值,那么将这两个“一半”进行分类需要花费多少钱?这是通过获取枢轴每个可能值的成本并将其乘以该特定值出现的机会来实现的。

    由于每个枢轴值的可能性均等,因此1/N如果您有N元素,则选择特定枢轴值的机会就很大。要了解这一点,请考虑掷骰子。骰子正确时,每侧朝上的机会相等,因此掷1的机会为1/6。

    结合起来,得出总和项,其中对于枢轴的每个可能值k,成本(C(k-1) + C(N-k))乘以机会(1/N

  3. 问题中求和公式的进一步推导到2N lnN标题中的花费了太多的数学知识,无法在此处进行详细说明,但是基于这样的理解,对N元素数组(C(N))进行排序的成本可以用对元素进行排序的方式表示。由N-1C(N-1))个元素组成的数组和一个与N


2
  1. 似乎N + 1作为分区步骤的比较次数是本书中的错误。您需要为N-1个非枢轴元素中的每个元素找出它是否小于或大于枢轴,这需要进行一次比较。因此,总共进行N-1次比较,而不是N + 1次。(考虑最简单的情况,N = 2,即一个枢轴和另一个元素:绝对没有空间在两个元素之间进行三个比较。)

  2. 考虑一下所选支点恰好是最小元素(k = 1)的情况。这意味着该数组被分为左侧的空白部分(没有小于枢轴的元素)和右侧的部分,其中包含除枢轴之外的所有元素(所有其他元素均大于枢轴) )。这意味着您现在要递归求解的子问题的大小分别为0和N–1(k–1和N–k),并且需要C(0)和C(N–1)比较。因此,总共为C(0)+ C(N-1)。

    如果支点恰好是第二个最小的元素(k = 2),则子问题的大小为1和N–2(k–1和N–k;左边的一个元素,因为它是唯一小于一个的元素)枢轴)。因此,递归求解这些子问题需要进行C(1)+ C(N–2)比较。依此类推,如果枢轴是第三个最小的元素,第四个最小的元素,依此类推。这些是分子中的表达式。

    由于枢轴是从N个元素中随机选择的,因此每种情况(枢轴最小,枢轴第二小等等)均以1 / N的相等概率发生。那就是分母中N的来源。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.