百科问答小站 logo
百科问答小站 font logo



如何证明快速排序法的平均复杂度为 O(nlogn)? 第1页

  

user avatar    网友的相关建议: 
      

其实这个可以求精确解的吧.

直接设对规模 的数组排序需要的时间期望为 , 期望其实就是平均复杂度换个说法.

随手写个快排:

                qs         [{}]         =         {};                            qs         [{         x_         ,         xs___         }]         :=         Join         [         qs         @         Select         [{         xs         },         #         <=         x         &         ],{         x         },         qs         @         Select         [{         xs         },         #         >         x         &         ]];            

空表的时候不用排, 所以初值条件就是 .

所谓快排就是随便取出一个数,一般是第一个数,然后小于等于他的放左边, 大于他的的排右边.

比如左边 个那接下来还要排: 的时间.

然后 多少那是不确定的, 遍历 , 出现概率都是相等的.

另外分割操作本身也要时间 , 操作花费是线性时间 , 这也要加进去, 所以一共是:

注意和式展开就是 到 加了两遍

然后就是喜闻乐见的解递推了:

这个一阶非线性齐次差分方程的解是:

嗯, 所以确切的说快排算法的小常数是两倍的分割速度.

让函数在无穷远处展开

最高阶是 所以就是 了.




  

相关话题

  如何证明一个数 n 的因子之和是 O(n) 的? 
  如何直接跳出深层递归而不是一层一层跳出? 
  为什么得不到「自由意志」会让那么多人难以接受? 
  Metropolis 蒙特卡罗方法、动力学蒙特卡罗方法、分子动力学方法这三种模拟方法有何特点与差异? 
  如何看待阿里 P8 加面 coding 环节,而 P7 却做不出头条算法题? 
  目标检测算法中Two-stage算法速度慢,到底在哪里? 
  如何看待网传字节跳动 28 岁图像算法工程师心梗猝死?还有 30 年房贷没还完,可以退房退款吗? 
  如何看待网传字节跳动 28 岁图像算法工程师心梗猝死?还有 30 年房贷没还完,可以退房退款吗? 
  Cambridge Analytica 是一家怎样的公司? 
  QR 二维码在不影响扫码的情况下,哪些部分可以删除? 

前一个讨论
英文论文写作时,公式推导那块如何写作?
下一个讨论
有没有那种小到极致的表情包啊?





© 2025-02-22 - tinynew.org. All Rights Reserved.
© 2025-02-22 - tinynew.org. 保留所有权利