https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注!
欢迎关注微信公众号:宝藏女孩的成长日记
如有转载,请注明出处(如不注明,盗者必究)
目录
- 一、算法时间复杂度的应用
- 二、如何计算算法的时间复杂度
- 举例说明
- 三、常用的时间复杂度
- 时间复杂度排序
- 四、代码说明
一、算法时间复杂度的应用
在实际应用中,会根据要解决的问题写出几个相应的解决办法,但是我们要选择执行效率最高的算法,那么怎样评估算法的效率呢,这时候就要用到算法时间复杂度了
二、如何计算算法的时间复杂度
步骤:
- 计算代码的时间频度
时间频度T(n): 代码的运行次数 - 将时间频度,化简为时间复杂度
代码运行次数的数量级别—时间复杂度 - 计算:
时间复杂度 = 时间频度 (去掉:1.常数项 2.低阶 3.最高次阶的系数 )只保留最高次阶
举例说明
T(n)=3n²+6n+5
- 去掉常数项
T(n)=3n²+6n - 去掉低阶
T(n)=3n² - 去掉最高次阶的系数
T(n)=n²
因此:T(n)=n² =>O(n²)
三、常用的时间复杂度
当n增大时,函数从小到大排序
时间复杂度排序
四、代码说明
#coding=utf-8#定义函数,array数组,order排序
def select_order(array,order):se = len(array)for i in range(0, se):j = ik = i+1while(k<se):if((array[j]>array[k]) and (int(order)>0)) or ((array[j]<array[k]) and (int(order)<0)):j = kk += 1array[i], array[j] = array[j], array[i]i += 1return arraypaopao = [3, 55, 66, 2, 38]
#order>0升序,order<0降序
print(select_order(paopao, 1))
print(select_order(paopao, -1))
以上是一个选择排序,从上常用的时间复杂度表中,很容易知道,此代码有两个循环:for i in range(0, se)
和 while(k<se)
因此,此循环的时间复杂度为O(n的2次方)
如果还是没有理解请留言,哈哈哈一起来解决哈哈哈
https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注!
欢迎关注微信公众号:宝藏女孩的成长日记
如有转载,请注明出处(如不注明,盗者必究)