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

 时间:2026-02-14 10:30:54

1、打开Python3的IDLE,新建 时间复杂度.py文件,假设查找两个数a和b,这两个数都不超过1000,且a+b=800,10000<a*b<100000。对应算法可以如下设计:

for a in range(1001):

    for b in range(1001):

        if a+b==800 and a*b>10000 and a*b<15000:

            print (a,b)

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

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

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

3、换一个更简单方法实现上述功能,代码如下:

for a in range(1001):

    b = 800-a

    if a*b>10000 and a*b<15000:

        print (a,b)

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

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

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

5、总结一下:

简单操作   如print('a')等时间复杂度为1

循环结构,时间复杂度按乘法进行计算,如本例中实现的操作

分支结构,各分支的时间复杂度取最大值,最多的那个分支

当然具体函数的时间复杂也就是上述之和,去除系数如6*n时间复杂度就是O(n)

  • Jupyter如何下载python的第三方包?
  • anaconda使用教程
  • 解决:invalid literal for int() with base 10
  • anaconda运行python程序教程
  • python如何安装xlrd模块?
  • 热门搜索
    让世界充满爱手抄报 淘气包马小跳手抄报 食品卫生安全手抄报 美术手抄报 七彩童年手抄报图片 手抄报主题 校园礼仪手抄报 保护眼睛的手抄报 简单的手抄报花边 登革热手抄报