算法之时间复杂度

本文介绍了算法的时间复杂度,强调了算法效率的重要性。通过比较不同算法的执行时间,说明了单靠时间值评估算法优劣的不准确性。文章引入了大O记法,用于描述算法的渐近时间复杂度,重点关注最坏时间复杂度,以排除特定情况的影响。最后,列举了常见时间复杂度及其关系。
摘要由CSDN通过智能技术生成

在了解时间复杂度之前,让我们来了解一下什么是算法?

算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令(我的理解是一系列解决问题的步骤),算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。不同的算法可能用不同的时间、空间或效率来完成同样的任务。

一个算法的优劣可以用空间复杂度与时间复杂度来衡量。

算法的五大特性:

  • 输入:算法具有0个或多个输入
  • 输出: 算法至少有1个或多个输出
  • 有穷性: 算法在有限的步骤之后会自动结束而不会无限循环,并且每一个步骤可以在可接受的时间内完成
  • 确定性:算法中的每一步都有确定的含义,不会出现二义性
  • 可行性:算法的每一步都是可行的,也就是说每一步都能够执行有限的次数完成

不同的算法对执行程序的结果也许是一样的,但是执行时间和效率却有着很大的区别,下面让我们来看个例子:

问题:a + b + c = 100, a^2 + b^2 = c^2,请计算出所有符合的a, b, c结果。

import time
 
start_time = time.time()
 
# 注意是三重循环
for a in range(0, 1001):
    for b in range(0, 1001):
        for c in range(0, 1001):
            if a**2 + b**2 == c**2 and a+b+c == 1000:
            
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值