算法绪论篇---时间复杂度的计算

算法的定义

给定计算问题,算法是一系列良定义的计算步骤,逐一执行计算步骤即可以得到预期输出
算法可以把输入变成我们想要的输出的效果的一系列步骤。
在这里插入图片描述

算法的性质
  • 有穷性:算法必须在有限个计算步骤后终止
  • 确定性:算法必须是没有歧义的
  • 可行性:可以机械的一步一步执行基本操作步骤
算法的表示
  • 自然语言:人类语言描述算法步骤,但是问题庞大容易产生歧义
  • 机器语言:机器语言众多,c,java等,不同语言编写的算法,对学习算法着对语言的掌握程度高,不易于算法思想的学习
  • 伪代码(使用):代码与自然语言的结合,更好。
算法的分析
  • 空间复杂度:对内存需求的大小
  • 时间复杂度:对运算时间长短的比较(我们主要分析)

针对时间复杂度的分析:
我们计算一些基本操作的时间,比如:加减乘除运算,赋值,比较。每次机器运算都表示为消耗一个单元,加起来算法总的消耗单元,再做比较。

我们假设时间复杂度只与输入规模(n)有关,输入情况有:

  • 最好情况
  • 一般情况
  • 最坏情况

时间复杂度用函数T(n)表示

算法分析的工具:
渐进分析:忽略T(n)的系数和低阶项,仅关注高阶项,用记号θ表示
渐进记号:

  • 渐进紧确界:T(n)=θ(g(n))【c1g(n)<=T(n)<=c2g(n)】
  • 渐进上界:T(n)=O(g(n))(常用)【0<=T(n)<=cg(n)】
  • 渐进下界:T(n)=Ω(g(n))【0<=cg(n)<=T(n)】

计算机是以二进制为计算的,所以我们把log以2为底的n,记为符号logn(换底公式,提出常数在计算中会常用)

算法中的O(1), O(n),O(logn), O(nlogn)分别是什么意思

在这里插入图片描述
在这里插入图片描述
算法分析例题:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
复杂度的比较方法:

  • 取对数
  • 求积分
  • 求极限
  • 放缩法

给出一个例子:(将函数分为常数阶、对数阶、多项式阶和指数阶)
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值