这意味着从QuickSort中的长度为x的数组中比较的n平均值



在这个公式中,继续这个问题,我认为如果我们假设n等于3,那么我们有一个类似A={4,5,7}的数组

根据这个公式,我们从n=3得到8,这意味着对于长度为3的数组,这是8的平均值,这太奇怪了!

  1. 在quickSort中到底发生了什么来获得平均比较8形式的数组这么短!而且发生了很多比较,那太糟糕了!是真的吗

我认为如果我们将数组与4步进行比较,会比使用quickSort快得多!

所以你的问题似乎是关于公式

E[X]=E[sum(i,1,n-1,sum(j,i+1,n,pi,j(]

在这张图片中,你上传了另一个问题。

这里E[X]表示期望值。简单地说:如果你多次进行实验(对随机数组排序(,X的平均值就会得到。

pi,j是在算法运行期间将项目i和项目j相互比较的机会。对于一个好的算法,碰巧项目i与项目k进行比较,项目k与项目j进行比较,这通常使得没有必要真正比较项目i和项目j。因此,算法越好,这种概率pi,j越低。

在最坏的情况下,例如,当n仅为3时,可以使pi,j=1。如果你计算公式,你会得到n=3,E[X]=3,因为(i,j(只有三个组合:(1,2(,(1,3(和(2,3(。这意味着对于n=3,总是要进行3次比较。这对所有好的算法都是平等的,因为你不能利用item_i<项目_k<项目_j。

对于较大的n,有很多机会利用不需要显式测试所有item_i与所有item_j的优势。例如,可汗学院的文章中提供了详细的分析。

最新更新