平均情况的复杂度

来源:2-1 究竟什么是大O(Big O)

马斯克2048

2024-01-17

描述一个算法,最差情况,最好情况,都可以想象出来。但是如果问平均情况,那这是一种什么情况?是把所有可能出现的case都加起来平均一下?

写回答

1回答

liuyubobobo

2024-01-18

对的。如果 case 不能穷举(比如输入是浮点数),就需要使用微积分的方式。实际上,所谓的平均情况,就是一个算法的复杂度的期望。


但是在大多数时候,平均情况并没有意义。因为一旦最坏情况出现,平均情况再好,在实际生产环境中,依然是极度耗时,不可承受的。但是在极少数情况,这个期望值是很有意义的。比如对于快速排序来说,理论上的最坏情况是 O(n^2) 的,但是对于正确的实现,这个情况出现的概率极低,比彗星撞地球的概率还要低,此时,看这个最坏情况意义不大。我们说快排是 nlogn 的,实际上是快排这个算法的期望(平均情况)。(对于这个分析,我的体系课程有详细分析。)


继续加油!:)

0
0

玩转算法面试-- Leetcode真题分门别类讲解

课程配套大量BAT面试真题,高频算法题解析,强化训练

7410 学习 · 1150 问题

查看课程