复杂度计算实例

简介: 复杂度计算实例

1.常见时间复杂度计算举例

实例1

实例1基本操作执行了2N+10次,通过推导大O阶方法知道,时间复杂度为 O(N)

实例2

实例2基本操作执行了M+N次,有两个未知数M和N,时间复杂度为 O(N+M)

实例3

实例3基本操作执行了100次,通过推导大O阶方法,时间复杂度为 O(1)

实例4

实例4基本操作执行最好1次最坏N次,时间复杂度一般看最坏,时间复杂度为 O(N)

实例5

实例5基本操作执行最好N次最坏执行了(N*(N+1))/2次,通过推导大O阶方法时间复杂度一般看最坏,时间复杂度为 O(N^2)

实例6

实例6基本操作执行最好1次,最坏O(logN)次,时间复杂度为 O(logN)

ps:logN在算法分析中表示是底数为2,对数为N。有些地方会写成lgN。(建议通过折纸查找的方式讲解logN是怎么计算出来的)

二分查找的时间复杂度为 O(log2n),其中n表示元素的数量

这是因为每次查找都可以将待查找区间缩小一半

所以最坏情况下需要进行的比较次数为 log2n  ---  O(logN)

实例7

实例7通过计算分析发现基本操作递归了N次,时间复杂度为O(N)

实例8

实例8通过计算分析发现基本操作递归了2^N次,时间复杂度为O(2^N)

(建议画图递归栈帧的二叉树讲解)

2.常见空间复杂度计算举例

实例1

实例1使用了常数个额外空间,所以空间复杂度为 O(1)

实例2

实例2动态开辟了N个空间,空间复杂度为 O(N)

递归空间复杂度计算:也是空间累加,但是不同的是空间可以重复利用

实例3

实例3递归调用了N次,开辟了N个栈帧,每个栈帧使用了常数个空间

空间复杂度为O(N)

3.常见的时间复杂度

一般算法常见的复杂度如下:

相关文章
|
9月前
|
算法
时间复杂度和空间复杂度计算
时间复杂度和空间复杂度计算
|
人工智能 算法 BI
【贪心策略】区间问题、背包问题、贪心策略注意事项
【贪心策略】区间问题、背包问题、贪心策略注意事项
173 0
|
算法 C++
二分算法实例应用(二)
二分法实例应用(二):和为给定数(POJ 4143)
4504 2
二分算法实例应用(二)
|
算法 C++
递归算法实例应用(三)
递归算法实例应用(三):(POJ4132)四则运算表达式求值问题
4077 0
递归算法实例应用(三)
|
机器学习/深度学习 算法
递归算法实例应用(一)
递归算法实例应用(一):简单Hanoi 问题、N Queens问题。
4102 0
递归算法实例应用(一)
|
算法 C语言
二分法实例应用(一)
二分法实例应用(一):方程求解(POJ 4140)
4373 0
时间复杂度计算-例题集合
各种时间复杂度计算集合
|
存储 算法 C语言
递归算法实例应用(五)
递归算法实例应用(五):(POJ 2787)算24
4175 0
|
算法
递归算法实例应用(四)
递归算法实例应用(四):(POJ 4017)爬楼梯、(POJ 1664)放苹果
4096 0