对于不同情况下,代码的时间复杂度不一样,引入三个概念
最好情况时间复杂度:在最理想的情况下,执行这段代码的时间复杂度
最坏情况时间复杂度:在最糟糕的情况下,执行这段代码的时间复杂
平均情况时间复杂度:
例子:在数组中查找元素
1.有(n+1)中情况,每种情况下要遍历的元素个数累加起来,得到:(1+2+3+....+n+n)/ n+1 (没有考虑概率问题)
2.用到概率论,元素在数组中和不在数组中的概率是1/2,元素在0到n-1位置的概率是1/n,时间复杂度 1*(1/2n)+2*(1/2n)+...+n(1/2n)+n(1/2n) = (3n+1)/4
均摊时间复杂度:
均摊时间复杂度就是一种特殊的平均时间复杂度
时间复杂度
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
数据结构与算法--------Java实现(第四章 排序算法 上)
qisoft1213
2020-07-07 13:21:29
迷宫求解问题——堆栈的使用
日晞Pisces
2020-07-07 06:11:52
部分leetcode题目
longlovefilm
2020-07-07 00:10:14
找出乱序数组中最小(最大)的k个数字
想名真难
2020-07-06 21:50:05
【c++算法】《判断一个数是否为2的n次方》
麻垌小库
2020-07-06 19:20:07
栈实现综合计算器、逆波兰计算器
阿演
2020-07-06 08:49:55
java 八皇后问题以及N皇后问题
山大王wld
2020-07-06 07:31:15
散列表描述
Q389281541
2020-07-06 07:05:03
Java实现特殊二叉树之线索二叉树
-江南听雨-
2020-07-06 03:44:44
Java实现特殊二叉树之堆、哈夫曼树
什麼是堆:堆是一種經過排序的完全二叉樹,其中任一非終端節點的數據值均不大於(或不小於)其左孩子和右孩子節點的值; 首先,堆分爲大根堆(最大堆)和小根堆(最小堆)二種; 小根堆滿足:
-江南听雨-
2020-07-06 03:44:33
【学点数据结构和算法】06-二叉堆和优先队列
Alice菌
2020-07-06 03:33:22
剑指offer_刷题
享受旅行中的VIP快乐
2020-07-06 02:26:55
非递归遍历二叉树实现
钱叁壹
2020-07-05 22:42:45