第一章内容
算法的定义
–可由一个给定计算模型机械地执行的规则或计 算步骤序列称为该计算模型的一个计算
有穷性/终止性:有限步内必须停止,
•确定性:每一步都是严格定义和确定的动作,
•能行性:每一个动作都能够被精确地机械执行,
•输入:有一个满足给定约束条件的输入,
•输出:满足给定约束条件的结果。
算法正确性分析
一个算法是正确的,如果它对于每一个输入都最终停, 而且产生正确的输出。
循环不变量方法
循环不变量:数据或数据结构的关键性质
初始 :循环开始前循环不变量成立
循环步骤:循环体每执行一次,循环不变量成立
终止 :算法结束后,循环不变量保证算法正确
算法的复杂度分析
目的 – 预测算法对不同输入所需资源量
复杂性测度 – 时间,空间, I/O等, 是输入大小的函数
用途 – 为求解一个问题选择最佳算法、最佳设备
矩阵问题的输入大小=矩阵的维数 • 图论问题的输入大小=图的边数/结点数
一个算法对特定输入的时间复杂性是该算法对该 输入产生结果需要的原子操作或“步”数
一个算法对特定输入的空间复杂性是该算法对该 输入产生结果所需要的存储空间大小
定义1.3.5(最坏复杂性)
Complexity(X)是求解R 的算法A的复杂性函数,Size(y)是确定R中输入大小的 函数
A的最坏复杂性是 MaxComplexity(size(y))yInput
(最小复杂性) MinComplexity(size(y))yInput
(平均复杂性) – 设y∈Input,y作为算法A的输入出现的概率是py,A的 平均复杂性为
第二章内容
计算复杂性函数的阶
低阶函数集合包括同阶函数集合
如果fn是gn的低阶函数集和高阶函数集,那么fn就是gn的同阶函数集
递归方程是使用小的输入值来描述 一个函数的方程或不等式.
迭代方法: –把方程转化为一个和式 –然后用估计和的方法来求解. • 替换方法: – 先猜测方程的解, –然后用数学归纳法证明. • Master方法: –求解型为T(n)=aT(n/b)+f(n)的递归方程
方法:
循环地展开递归方程, 把递归方程转化为和式, 然后可使用求和技术解之
替换法
1.变量代换,将方程转换成已知方程 2.先根据方程的形式猜测解 然后用数学归纳法证明
猜测方法Ⅰ: 猜测上下界,减少不确定性范围
master定理的不适用性
第一二章主要讲解了算法的定义,时间空间复杂度,以及求复杂函数阶数的三种方法,迭代,替换,master定理。重点记住master方法的公式。