循环嵌套时间复杂度_【简单算法】什么是复杂度?

本文介绍了复杂度的概念,强调其在衡量程序运行效率中的重要性。文章通过实例解释了复杂度与常系数无关,多项式级复杂度相加取高者,以及O(1)的特殊意义。此外,还提供了分析复杂度的经验性结论,包括不同结构循环的时间复杂度,并给出了一段代码的复杂度分析过程。
摘要由CSDN通过智能技术生成

60b2451e8d0845fd0896e891de4c00ba.png

在上一篇文章里,有看到一个简单算法题的2个解法,我们运用了复杂度分析来判断哪个解法更合适。

这里的复杂度,就是用于衡量程序的运行效率的重要度量因素。

虽然有句俗话“不管是白猫还是黑猫,抓到老鼠就是好猫”,这句话是站在结果导向的,没错。但是如果

有个程序要去处理海量数据,一个程序员写的要执行2天,而另一个程序员只要半小时,那么第二种显然更适合我们的实际需求。

一、什么是复杂度

复杂度是一个关于输入数据量n的函数。

要表示复杂度很简单,用大写O加上括号O()将复杂度包起来就好了。比如这个代码的复杂度是f(n),那就可以写成O(f(n))

在计算复杂度的时候,有三点需要我们记住:

  • 复杂度与具体常系数无关
  • 多项式级复杂度相加,选择高者为结果
  • O(1)表示特殊复杂度

1、复杂度与具体常系数无关

举个例子,将一个列表反转,不用reverse()

def demo_1():
    a = [1, 2, 3, 4, 5]
    b = [0 fo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值