第二章-算法

第二章-算法

算法与数据结构的关系

算法是对数据结构的应用

算法是什么

算法是计算机指令的有序集合

或者我们可以理解为,当我们在做一道数学题时

我们的经验(算法)告诉我们应该

先………再………最后………

算法有两个必须考虑的属性

  1. 算法时间复杂度
  2. 算法空间复杂度

算法的五个特性

  1. 输入
  2. 输出
  3. 有穷
  4. 确定
  5. 可行

一道数学题的解决 离不开解答过程的推导(输入)和结果的获得(输出
我们的解题方法(算法)必须是能够写下来的,不是只能在脑子里转的想法**(可行性)**

步骤必须是准确的**(确定性)**,一样的方法只能产生一样的结果,不能有歧义

答案的获得必须是及时的,步骤必须是有限的**(有穷)**

毕竟考试的时间和答题卡的范围是有限的(时间和空间)

好的算法的要求(是在某些特性上的加强)

  1. 准确性(确定性)
  2. 可读性(要方便交流与理解)
  3. 健壮性
    1. 对于错误的输入数据也能有好的处理办法
  4. 时间效率高,存储量低(有穷)

影响算法效率的因素

  1. 算法本身的质量
  2. 编译后代码的质量(与软件有关)
  3. 输入规模(执行的次数)
  4. 机器速度(硬件)

效率判断方法

  1. 事后统计
    1. 通过每次的运算时间来推断算法的速度
    2. 缺点太多了。容易受到输入数据,算法本身质量,电脑自身能力的影响,难以得到一个客观的答案
  2. 事前分析估算
    1. 针对算法的执行次数进行估计

算法时间复杂度的计算

就是将全部代码的运行次数进行求和

其中

  1. 常数求和为1
  2. 存在最大项,且最大项不为1的数,全部转化为1,也就是只保留最大项(抓大放小)

特别地:

我们可以认为分支结构都是1

循环结构都只是步数的乘法

算法的空间复杂度

也就是算法本身对空间的需求

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《知到app算法设计与分析》是一本讲述算法设计与分析的教材。通过阅读这本教材,我们可以了解到算法设计的基本概念、算法的分类、算法分析的方法以及常见的数据结构和算法问题。 在第二章中,主要介绍了算法的基本概念和算法分析的方法。首先,算法的定义是一组完成特定任务的有限步骤集合。算法要具备以下特点:明确性、有限性、确定性和有效性。然后,根据算法的执行顺序,可以将算法分为序列、选择和循环结构。序列结构是指算法按照一定顺序执行,选择结构是根据条件选择执行不同的代码块,循环结构是重复执行某段代码。 接下来,教材介绍了算法分析的方法。算法分析主要用于评估和比较不同算法的性能。常见的算法分析方法包括时间复杂度和空间复杂度。时间复杂度表示算法执行所需的时间,可以通过估计算法中基本操作的执行次数来进行评估。空间复杂度表示算法执行所需的额外存储空间,也可以通过估计变量和数据结构的存储量来进行评估。我们通常关注算法的最坏情况时间复杂度,即算法在最差情况下执行所需的时间。 此外,第二章还介绍了算法思维和算法设计的一些基本原则。算法思维是指通过分析问题、抽象问题和抽象解决方法来解决问题的能力。而算法设计的基本原则包括自顶向下的设计、递归和迭代的设计、模块化设计和算法的优化等。 总之,第二章主要介绍了算法的基本概念、算法分析的方法以及算法设计的一些基本原则。通过阅读和理解这些内容,我们可以更好地了解和应用算法设计与分析的知识。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值