算法导论作为计算机科学与技术专业的专业主干课程,先修课程是高级语言程序设计、数据结构,主要讲授经典算法,包括递归与分治算法、动态规划算法、贪心算法、回溯算法、分支界限算法的基本原理、实现方法和应用实例,通过该课程的学习,使学生熟悉算法复杂性分析理论和评价算法性能的标准,掌握基本的算法设计方法,能运用一些常用算法去分析和解决实际问题,具有较强的问题抽象和建模的能力,为学生进一步分析和解决计算机科学与技术领域的复杂工程问题奠定良好的基础。
算法导论课程的教学目标有两个:
1)能够针对待解决的具体问题,在满足问题约束条件的前提下,分析多种解决方案在时间、空间复杂度及算法效率上的优劣,选择合理的算法进行解决。
2)能够结合具体应用案例,合理选择经典算法,并能在此基础上设计出复杂算法,使之针对具体应用能够高效地存储和处理数据,并对算法进行有效分析和评价。
1 算法概述
1.2\t算法复杂性分析
1.1\t算法及复杂性
算法概述作业
2 分治与递归
2.4 合并
2.1 递归的概念
2.6 大整数的乘法
2.2 分治法的基本思想
2.8 棋盘覆盖
2.7 最接近点对
2.5 线性时间选择
2.3 二分搜索技术
分治与递归作业题
4 贪心算法
4.1 活动安排问题
4.3 最优装载
4.2 贪心算法的基本要素
4.4 哈夫曼编码
4.5 单源最短路径
4.6 最小生成树
贪心算法作业
6 分支限界法
6.1 分支限界法概述
6.2 单源最短路径
6.3 装载问题
6.4 最大团问题
分支限界法作业
5 回溯法
5.1 回溯法基本概念
5.2 0-1背包问题
5.3 旅行商问题
5.4 图的着色问题
回溯法作业
3 动态规划
3.6 流水作业调度
3.5 凸多边形最优剖分
3.7 图像压缩
3.3 最长公共子序列
3.1 动态规划概述
3.4 最大子段和
3.9 电路布线
3.8 0-1背包
3.10 最优二叉搜索树
3.2 矩阵连乘
动态规划作业