算法导论(一): 算法基础

一,循环不变式

循环不变式主要用来帮助我们理解程序的正确性。

循环不变式的三条性质:

  1. 初始化:循环的第一次迭代之前,它为真。
  2. 保持:如果循环的某次迭代之前它为真,那么下次迭代之前它仍为真。
  3. 终止:再循环终止时,可验证算法的正确性。

二,伪代码的一些约定

伪代码的重要性在于它可以简洁地表达出算法的本质

  1. 缩进代表块结构:采用缩进代表块结构可以大大提高伪代码的清晰性。
  2. 可用while、for…to…by… 、for…downto…by…、repeat-until等循环结构以及if-else等条件结构 : by之后是增量大小。
  3. 记号”//”:代表注释。
  4. 记号“..”:表示数组中值的一个范围,如A[1..j]代表A的一个子数组。
  5. 记号“.”:表示使用对象的某个属性,如A.length。
  6. 逻辑运算符 and、or、not
  7. 关键词error:表示因为已被调用的过程情况不对而出现了一个错误。

三,算法的分析

分析算法的结果意味着预测算法需要的资源。
一些算法分析时要使用的概念:

  1. 输入规模
  2. T(n):运行时间
  3. 常使用最坏情况的T(n)和平均情况的的T(n)
    因为最坏情况的运行时间给出了任何输入的运行时间的一个上界。
    而且最坏情况经常出现。
  4. 增长量级
  5. 时间复杂度与空间复杂度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值