算法设计与分析 - 北航童咏昕教授
文章目录
- 算法的定义
- 定义
- 性质
- 算法的表示
- 自然语言
- 编程语言
- 伪代码
- 算法的分析
- 算法分析的原则
- 渐近分析
算法的定义
定义
给定计算问题,算法是一系列良定义的计算步骤,逐一执行计算步骤即可得预期的输出。
性质
- 有穷性
- 确定性
- 可行性
算法的表示
自然语言
- 方法优势
- 贴近人类思维,易于理解主旨
- 不便之处
- 语言描述繁琐,容易产生歧义
- 使用了“…”等不严谨的描述
编程语言
- 方法优势
- 精准表达逻辑,规避表述歧义
- 不便之处
- 不同编程语言间语法存在差异
- 过于关注算法实现的细枝末节
伪代码
- 非正式语言
- 移植编程语言书写形式作为基础和框架
- 按照接近自然语言的形式表达算法过程
- 兼顾自然语言与编程语言优势
- 简洁表达算法本质,不拘泥于实现细节
- 准确反映算法过程,不产生矛盾和歧义
算法的分析
算法分析的原则
输入情况 | 情况说明 |
---|---|
最好情况 | 不常出现,不具普遍性 |
最坏情况 | 确定上界,更具一般性 |
一般情况 | 情况复杂,分析难度大 |
渐近分析
- 𝑻(𝒏) = 𝚯(𝒈(𝒏)) 渐近紧确界
- 𝑻(𝒏) = 𝑷(𝒈(𝒏)) 渐近上界
- 𝑻(𝒏) = 𝛀(𝒈(𝒏)) 渐近下界