多语言展示
当前在线:429今日阅读:126今日分享:42

算法的时间复杂度O(n)如何计算

面试时候经常会有算法相关的题目,这里介绍基本的算法时间复杂度O(n)的概念,O(n)代表一个函数如f(n)=n^2就是O(n^2)时间复杂度为n的平方。我们用Python语句来实例讲解。
工具/原料
1

python3

2

Windows电脑

方法/步骤
1

打开Python3的IDLE,新建 时间复杂度.py文件,假设查找两个数a和b,这两个数都不超过1000,且a+b=800,1000010000 and a*b<15000:            print (a,b)

2

F5运行程序,打印出正常结果a和b的值。这里用到了两个循环语句,一个a+b加法,两个等号判断,两个乘法及大于小于判断,复杂度为1000*1000*6,适用一般情况,就是n*n*6,用大O表示法,省略系数6,就是O(n^2)

3

换一个更简单方法实现上述功能,代码如下:for a in range(1001):    b = 800-a    if a*b>10000 and a*b<15000:        print (a,b)

4

F5运行程序,打印出正常结果a和b的值。这里仅一个循环语句,就是O(n),时间复杂度明显少于第一种方法。

5

总结一下:简单操作   如print('a')等时间复杂度为1循环结构,时间复杂度按乘法进行计算,如本例中实现的操作分支结构,各分支的时间复杂度取最大值,最多的那个分支当然具体函数的时间复杂也就是上述之和,去除系数如6*n时间复杂度就是O(n)

推荐信息