课程主页: https://www.coursera.org/learn/analysis-of-algorithms
课程名称:算法分析
概述:本课程教授一种可以精确预测大型组合结构的量化方法。课程内容包括生成函数、实量级以及在算法分析中的应用,涵盖基本结构如排列、树、字符串、单词和映射。
本课程所有功能均可免费使用,但完成后不提供证书。
课程大纲:
算法性能的历史背景和动机:本课程首先考虑算法性能科学研究的历史背景与动机。通过分析Quicksort算法的经典案例,展示分析过程的关键要素。课程最后讨论一些在学习过程中可能会有用的资源。
递归关系:本讲座将概述递归关系,为算法分析提供直接的数学模型。我们将探讨归并排序算法对应的“主定理”的奇妙振荡行为。
生成函数:自17世纪以来,科学家们利用生成函数解决递归题,我们将概述生成函数,并强调它们在解决问题(如计数具有N个节点的二叉树)中的实用性。
渐近分析:由于准确答案往往繁琐,因此我们将考虑一种科学的方法来发展近似答案,这种方法早已被数学家和科学家广泛使用。
解析组合学:学习递归、生成函数和渐近分析的基本知识后,您将可以理解和欣赏解析组合学的基本特征。这是一种系统的方法,避免了我们先前考虑的经典方法的许多细节。
树结构:作为典型的递归结构,树在科学研究中无处不在,尤其是在计算机应用中。讲座将集中于使用解析组合学对各种树进行计数和研究其参数。
排列:排序算法的学习就是研究排列的属性。我们介绍解析组合方法来研究排列在这一关系中的应用。
字符串与前缀树:从DNA序列到网络索引,字符串(字符的序列)在现代计算应用中无处不在。我们使用解析组合学研究字符串的基本属性,并引入前缀树这一在经典组合学中不常见的重要结构。
单词与映射:我们将字符串视为字符的集合或从[1..N]到[1..M]的函数,以研究经典占用问题及其在基础哈希算法中的应用。
课程主页: https://www.coursera.org/learn/analysis-of-algorithms