算法基本概念

本文介绍了评估算法优劣的核心指标,包括时间复杂度、额外空间复杂度和常数项时间,并讲解了如何确定这些复杂度。强调了理解算法流程和熟悉操作时间对于准确分析复杂度的重要性。此外,还提及了最优解的概念以及对数器在测试算法中的应用。
摘要由CSDN通过智能技术生成

算法基本概念

1. 评估算法优劣的核心指标是什么

1.1 时间复杂度(流程决定)

常数时间的操作

如果一个操作的执行时间不以具体样本量为转移,每次执行时间都是固定的时间,这样的操作为常数时间操作。

  • 常见的算术运算:+、-、*、/、%
  • 常见的位运算:>>、<<、>>>、<<<、|、&、^
  • 赋值、比较、自增、自减
  • 数组寻址
    总之,执行时间固定的操作都是常数时间的操作。反之,执行时间不固定的操作,都不是常数时间的操作。
如何确定算法流程的总操作数量与样本数量
  1. 想象该算法流程所处理的数据状况,要按最差情况来
  2. 把整个流程彻底拆分成一个个基本动作,保证每个动作都是常数时间的操作
  3. 如果数据量为N,看看基本动作的数量和N是什么关系。
如何确定算法流程的时间复杂度?

当完成了表达式的建立,只要把最高阶项留下即可。低阶项都去掉,高阶项的系数也去掉。
记为 O(忽略掉系数的高阶项)

注意
  1. 算法的过程,和具体的语言是无关的
  2. 相分析一个算法流程的时间复杂度的前提,是对这个算法的流程非常熟悉
  3. 一定要确保拆分算法流程时,拆分出来的所有行为都是常数时间操作。这意味着你写算法时,对自己用过的每一个系统api,都非常的熟悉,否则会影响对时间复杂度的估算
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值