算法的定义

给定计算问题,算法是一系列良定义的计算步骤,逐一执行计算步骤即可以得到预期输出
算法可以把输入变成我们想要的输出的效果的一系列步骤。
算法绪论篇---时间复杂度的计算

算法的性质
  • 有穷性:算法必须在有限个计算步骤后终止
  • 确定性:算法必须是没有歧义的
  • 可行性:可以机械的一步一步执行基本操作步骤
算法的表示
  • 自然语言:人类语言描述算法步骤,但是问题庞大容易产生歧义
  • 机器语言:机器语言众多,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)分别是什么意思

算法绪论篇---时间复杂度的计算
算法绪论篇---时间复杂度的计算
算法分析例题:
算法绪论篇---时间复杂度的计算
算法绪论篇---时间复杂度的计算
算法绪论篇---时间复杂度的计算
算法绪论篇---时间复杂度的计算

相关文章:

  • 2022-01-08
  • 2022-03-03
  • 2022-01-07
  • 2022-12-23
  • 2021-11-29
  • 2021-10-22
  • 2021-06-09
  • 2021-05-07
猜你喜欢
  • 2021-07-07
  • 2021-12-27
  • 2022-01-26
  • 2022-02-25
  • 2021-12-23
相关资源
相似解决方案