最好,最坏,平均情况时间复杂度

qq_42090747 2020-07-05 10:17:45
最近复习到数据结构,总结一下之前一直没懂的最坏,最好,平均情况的时间复杂度
最好:
每次要查找的数据刚好在数据的第一个,即每个数只要查一次就可以了,带入O表示为O(1)
最坏:
每次要查找的数据刚好在数据的最后一个,即第一个数要查n次,第二个要查n-1次,第三个要查n-2次。。。以此类推,最后一个要查一次即可,累加一下就是(1+n)n/2。即每个数平均下来要查找(1+n)/2次,带入O表示为O(n)。
平均(即加权平均):
这个之前一直没看懂,现在简单总结一下。假如数组有n个位置,每个位置刚好是你要查的数据的概率为1/(1+n),(n个数据有n种,再加一是所查的数不在数据中的情况)。
接下来就看查一个数,每个位置要查几次,显然,第一个位置要查1次到达,第二个位置查2次到达,第三个位置查3次到达。。。。。第n个位置查n次到达,总共就是1+2+3+。。。+n
即每个数平均下来要查找1/(1+n) * (1+2+3+....n) 即书本上的n(n+3)/2(n+1)。带入O,去掉低阶项为O(n)。
...全文
63 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

6,129

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 新技术前沿
社区管理员
  • 新技术前沿社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧