算法分析与设计(陈慧南,电子科技出版社)复习资料.pdfVIP

  • 137
  • 0
  • 约5.61千字
  • 约 11页
  • 2019-11-19 发布于湖北
  • 举报

算法分析与设计(陈慧南,电子科技出版社)复习资料.pdf

《算法分析与设计 C》复习 总成绩=平时成绩(30%)+考试成绩(70%) 考试时间:2015 年 06 月 28 日(16:00-17:50) 试卷题型: 一、 选择题(每空 2 分,共 20 分) 二、 填空题(每空 2 分,共 20 分) 三、 证明题(每题 5 分,共 10 分) 四、 问答题(每题 10 分,共 50 分) 第一章 算法求解基础 算法的概念 算法特征(输入、输出、确定性、可行性、有穷性)——掌握每 种特征的含义、算法和程序的区别 描述算法的方法(自然语言、流程图、伪代码、程序设计语言) 欧几里德算法(辗转相除法)——递归/迭代程序实现及其变形 常见算法种类——精确算法、启发式算法、近似算法、概率算法 第二章 算法分析基础 算法复杂度——运行一个算法所需的时间和空间。 好算法的四个特征(正确性、简明性、效率、最优性) 正确性 vs 健壮性 vs 可靠性 最优性——算法(最坏情况下)的执行时间已达到求解该类问题 所需时间的下界。 影响程序运行时间的因素(程序所依赖的算法、问题规模和输入 数据、计算机系统性能) 算法的渐近时间复杂度 ——数量级上估计( Ο、Ω、Θ) 最好、最坏、平均时间复杂度——定义 ——课后习题 2-8(通过考察关键操作的执行次数) 时间复杂度证明 ——课后习题 2-10,2-13,2-17 算法按时间复杂度分类:多项式时间算法、指数时间算法 2 3 多项式时间算法:O(1)O(logn)O(n)O(nlogn)O(n )O(n ) n n 指数时间算法:O(2 )O(n!)O(n ) 第五章 分治法 分治法——求解的基本要素:将一个难以直接求解的复杂问题分 解成若干个规模较小、相互独立但类型相同的子问题,然后求解这些 子问题;如果这些子问题还比较复杂而不能直接求解,还可以继续细 分,直到子问题足够小,能够直接求解为止;最后将子问题的解组合 成原始问题的解。这种问题求解策略称为分治法。 分治法很自然的导致一个递归算法。 平衡子问题思想 递归算法的时间复杂度分析: 递推式 T(n)=aT(n/b)+cnk ,T(1)=c ——递推式中每部分的含义 ——求解得到算法的渐近时间复杂度(分三种情况) ——改进思路 求最大最小元 二分搜索算法框架 对半搜索 ——程序实现 ——对半搜索二叉判定树(树的构成) ——对半搜索二叉判定树性质(左右子树结点数、树高等) ——对半搜索的时间复杂度分析(搜索成功/失败、最好/最坏/ 平均)。  二叉判定树的性质→对半搜索的时间复杂度 成功搜索:平均、最坏 O(logn) 失败搜索:平均、最好、最坏都是Θ(logn)  (通过关键字值间的比较,搜索指定关键字值元素)这类 搜索算法最坏情况下的时间下界为 O(logn),因此对半搜 索是最优算法。 ——课后习题 5-8 最优算法 两路合并排序 ——分治法排序过程 ——程序实现 ——时间复杂度分析(最好、最坏、平均) ——是否最优算法 快速排序 ——排序过程(每一趟分划后的排列和子问题划分) ——时间复杂度分析(最好、最坏、平均) ——课后习题 5-11 斯特拉森矩阵乘法——时间复杂度的改进; 第六章 贪心法 (求解最优化问题)贪心法的基本要素:  最优子结构性质  贪心选择性质 一般背包问题;——课后习题 6-1 最佳合并模式; 最小代价生成树 ——Prim 和 Kruskal 算法(构造过程、区别) ——共同的理论基础:M

文档评论(0)

1亿VIP精品文档

相关文档