算法基础总结

1、问题、问题实例与算法

  • 问题:一个类问题。
  • 问题示例:一类问题中具体的一个。
  • 算法:过程的严格描述。

2、算法的性质

  • 有穷性:计算过程又穷
  • 能行性:每个步骤可以用命令机械的执行
  • 确定性:结果是确定的
  • 终止性:有终止条件
  • 输入/输出:有明确的的输入/输出

3、算法的描述

  • 自然语言
  • 自然语言与数据符合结合
  • 严格的形式化记法描述
  • 编程语言
  • 伪代码

4、程序与算法的区别

  • 程序是算法的实现
  • 算法是程序的描述

5、算法的设计模式

算法设计中一些前人总结的思路和模式可以称为算法的设计模式。设计模式只能借鉴,不应该作为教条。

  • 枚举法。根据具体的问题枚举出各种可能,从中选择有用信息或问题的解。这种方法利用计算机的计算优势,在解决简单问题时十分有效。
  • 贪心法。根据问题的信息尽可能做出部分的解,并基于部分解逐步扩充得到完整解。在解决复杂问题时,这种方法未必得到最好的解。
  • 分治法。把复杂的问题分解为相对简单的子问题,分别求解,最后将子问题组合得到原问题的解。一个复杂的问题往往可以包含多种设计模式。
  • 回溯法(搜索法)。专指通过探索的方式求解。当问题很复杂时,没有明确的求解路径,只能采用探索的方式,当前路径无法继续时,需退回到上一路径。
  • 动态规划法。在一些复杂情况下,问题求解很难直截了当地进行,因此需要在前面的步骤中积累信息,在后续步骤中根据已知信息,动态选择已知的最好路径。
  • 分支界限法(剪枝法)。是搜索法的一种,在搜索过程中可以得到一些信息,确定某些可能的选择上并不真实有用,就可以及早将其删除,以缩小可能的求解空间。

6、算法分析

  • 算法分析的主要任务是弄清算法的资源消耗,及时间和空间开销。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值