课程号00110060

课程名称算法设计与分析

开课学期:秋

学分    3

先修课程:,高等数学,数据结构,离散数学,概率论

基本目的本课程通过系列典型问题阐释计算机算法的重要设计策略:贪心法,分治法,动态规划法,图检索和周游方法,回溯法等,同时概述分析算法时间复杂度和效率的方法,并简要介绍NP难度问题及相应的近似算法和随机算法。期望学生掌握算法评估的基本原理与方法;提高设计新算法的能力。

内容提要:

第一章:引言(约2学时)

1)计算机算法的概念,算法评判的准则,时间复杂度与空间复杂度的计算,复杂度的渐近分析,多项式复杂度算法和指数复杂度算法,可行算法;2)算法语言:SPARKS

第二章:分治法 (约10学时)

1)分治法的原理,整数位乘,Strassen 矩阵乘法,快速Fourier变换;2)时间复杂度的递归表达式,Master 定理;3)二分检索算法;4)选择问题:找最大和最小元素;找最大和次大元素,对手策略;5)排序问题:插入排序;堆排序,归并排序;快速排序,排序算法时间复杂度的下界估计,排序算法的优劣性比较;6)计算几何问题:最近点对问题和凸包问题

第三章:贪心法(约6学时)

1)最优化问题的框架,贪心法的思路,最小生成树的Kruskal算法;2)磁带上的最优存储,最小延迟;3)背包问题;4)带有限期的作业调度;5)拟阵与贪心算法;6)最优根树

第四章:动态规划法(约8学时)

1)多阶段问题与最优性原理,矩阵连乘问题;2)最优二分检索树;3)最长递增子序列;4)0/1背包问题;5)流水线调度问题;6)最长非递减子序列

第五章:基本周游与检索方法(约8学时)

1)宽度优先检索与最少操作问题2)深度优先检索,有向图的拓扑序,关键路径;3)有向图的强连通分图与无向图的双连通分图

第六章:回溯法(约4时)

    1) 回溯法原理,骑士巡游问题;2)稳定婚姻问题 

专题选讲(约6学时)

    1平摊分析2NP-难度和NP-完全问题简介;3)近似算法和随机算法简介

教学方式:每周授课3学时

教材与参考书:

1. 余祥宣,崔国华,邹海明,“计算机算法基础”,华中科技大学出版社,1998

2. E. Horowitz, S. Sahni, Fundamentals of Computer Algorithms, New York: Computer Science Press, Pitman, Inc., 1978.

3. Sara Baase, Allen Van Gelder, Computer Algorithms: Introduction to Design and Analysis (Third Edition), Higher Education Press & Pearson Education Asia Limited., 2001.

4. Thomas H. Corman, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, Introduction to Algorithms (Second Edition), Higher Education Press & The MIT Press, 2002. (有中译本)

5. D. E. Knuth, The Art of Computer Programming (Third Edition): Fundamental Algorithms (Vol. 1), Addison-Wesley, 1998; 清华大学出版社(影印),2002.

6. D. E. Knuth, The Art of Computer Programming (Third Edition): Sorting and Searching (Vol. 3), Addison-Wesley, 1998; 清华大学出版社(影印),2002.

7. Jon Kleinberg and Eva Tardos, Algorithm Design, Pearson Education Asia Limited and Tsinghua Unversity Press, 2006.(有中译本)

8. M H Alsuwaiyel, Algorithms: Design Techniques and Analysis (Revised Edition), World Scientific Publishing Co. Pte. Ltd., 2016.

学生成绩评定方法:作业20%,期末考试80%.        

课程修订负责人:杨建生

TOP
XML 地图