课程名称 算法设计与分析基础 bS&XlgnKi
英文名称 The Fundation of Design and Analysis of Algorithms C)(/NGf
课程编号 不填 总学时 60 学 分 不填 Tr$37suF
预修课程 数 据 结 构 开课学期 不填 X(qs]:
大纲撰写人 顾 乃 杰 {Z_?7J&z
一、教学目标和基本要求 n,*E
s/
\
目标:本课程是高等学校计算机系各专业的基础课, 其要求是使学生了解和掌握算法基础这门课程的基本内容, 知道算法设计的基本方法和技术, 学会算法性能分析中的具体方法和技巧, 为计算机应用和科学研究工作中有效求解问题, 以及为今后进一步学习打下基础。 !D~\uW1b
基本要求:使学生能够从的运算三个方面去掌握各种数据结构的特性, 对算法的时、空复杂性有一定的分析能力,使之能够针对具体的应用问题, 选择合适的数据结构及设计结构清晰、正确有效的算法解决之。 n<3{QqF
二、课程简介 >goG\y
本课程系统而全面地介绍了算法设计的基本策略和方法, 如:分治法、贪心法、动态规划、回溯法、分枝-限界等等, 并从解决大量计算机科学和应用中出现的问题出发, 描述了应用这些策略和方法而设计有效算法的过程, 并且给出了若于精典算法, 同时,对通过对这些典型算法的时间和空间复杂度的分析,逐步介绍了算法分析的方法和步骤, 以及提高算法性能的技巧, 着重强调了算法优化的思想。
3dB{DuQ
三、教学重点、难点 5$%CRm
重点: 算法设计的基本思想和策略, 算法优化的技巧, 算法性能分析的方法; Sp./*h\}
难点: 将算法优化的思想贯穿在设计过程中, 算法平均性能的分析技巧。 r[4dGt
;
-,VJC
Pi
四、教材名称及主要参考书 ZeE(gtM
参考书:《计算机算法基础》,邹海明,余祥宣, 华中理工大学出版社 is6d:p
《计算机算法导引》,卢开澄 编著, 清华大学出版社 ]~kgsI[E
k56*eEc
qLk7C0
五、课程章节主要内容及学时分配 m?O"LGBB=
Z/+H
第一章 绪 论 (2 学时) Igb
%bO_
第一节 基本概念 |v@ zyOq&b
第二节 算法的设计和性能度量 jM;?
);Dd
第三节 标准记号与常用函数和公式 )O$T; U
第二章 分治与递归策略 (5 学时) |6T"T P
第一节 二分检索 KDu~,P]
第二节 矩阵的快速乘法 `V=F>s$W
第三节 快速傅里叶变换(FFT) ~'t+X
第四节 广义表及递归算法 =:(<lKf,<F
第三章 排序与选择 (5 学时) `(VVb@:o
第一节 简单排序和SHELL排序 cW?~]E'<
第二节 选择排序和堆排序 eDL0Vw
第三节 快速排序和归并排序 0s%]%2ON
第四节 选择问题 &D#B"XI
第五节 桶排序和基数排序 2hFOwI
第四章 贪心策略 (4学时) F?hGt]o
第一节 文件存储 !=
u
S
第二节 背包问题 K?H(jP2mpM
第三节 有限期的作业调度问题
3y]rhB
第五章 串匹配 (4学时) mmBZ}V+&=
第一节 一般算法 ^s6C']q *O
第二节 Rabin-Karp算法 lCK|PY*
第三节 Knuth-Morris-Pratt算法 aK
k0kC
第四节 Boyer-Moore算法 z:p9&mi