算法分析与设计教案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
算法分析与设计课程
教
案
课程编号:50c24037-01
总学时:51 周学时:4
适用年级专业(学科类):2007级计科专业
开课时间:2010-2011 学年第1 学期
使用教材:王晓东编著计算机算法设计与分析第3版
章节第1章1.1~ 1.2 第2 章2.1 课时 2
教学目的理解程序与算法的概念、区别与联系;掌握算法在最坏情况、最好情况和平均情况下的计算复杂性概念;掌握算法复杂性的渐近性态的数学表述;理解递归的概念。
教学重点及突出方法重点:程序与算法的概念、算法的时间复杂性、算法复杂性的渐近性态的数学表述以及递归的概念。
通过讲解、举例方法。
教学
难点及突破方法难点:算法复杂性与递归
通过讲解、举例、提问与引导方法。
相关内容此部分内容基础知识可参考清华大学出版社出版严蔚敏编著的《数据结构》
教学过程
(教师授课思路、设问及讲解要点)
回顾数据结构课程中的算法概念、排序算法等知识,从而引出本课程内容。
提问算法与程序的区别、联系以及算法具有的特性。
讲解算法的复杂性,主要包括时间复杂性与空间复杂性。
讲解最坏情况、最好情况与平均情况的时间复杂性。
讲解算法复杂性在渐近意义下的阶,主要包括O、Ω、θ与o,并通过具体例子说明。
通过具体例子说明递归技术。
主要包括阶乘函数、Fibonacci数列、Ackerman函数、排列问题、整数划分问题、Hanoi塔问题等。
第页
章节第2 章2.2~2.5 课时 2 教
学目的掌握设计有效算法的分治策略,并掌握范例的设计技巧,掌握计算算法复杂性方法。
教学
重点及突出方法重点:分治法的基本思想及分治法的一般设计模式。
通过讲解、举例方法。
教学
难点及突破方法难点:计算算法复杂性。
通过讲解、举例、提问与引导方法。
相关
内容
素材
教(教师授课思路、设问及讲解要点)
学过程通过生活中解决复杂问题的分解方法,引出分治方法。
讲解分治法的基本思想及其一般算法的设计模式,介绍分治法的计算效率。
通过具体例子采用分治思想来设计有效算法。
主要包括二分搜索技术、大整数乘法、Strassen矩阵乘法。
1、二分搜索技术
先介绍顺序搜索方法;然后介绍二分搜索算法;最后分析算法的时间复杂性。
2、大整数乘法
先介绍当计算机硬件不能直接处理整数时的问题;然后引出用软件方法实现大整数乘法算法;最后分析算法的效率。
3、Strassen矩阵乘法
先引入一般矩阵乘法算法并分析时间复杂性;然后再给出另一种方法,但其效率并没有提高;最后介绍提高矩阵乘法效率的算法并分析时间复杂性。
第页
章节第2 章2.6~2.8 课时 2 教
学目的掌握设计有效算法的分治策略,并掌握范例的设计技巧,主要包括棋盘覆盖、合并排序与快速排序,掌握计算算法复杂性方法。
教学
重点及突出方法重点:分治法的基本思想及分治法的一般设计模式。
通过讲解、举例方法。
教学
难点及突破方法难点:计算算法复杂性。
通过讲解、举例、提问与引导方法。
相关内容素材
第页
章节第2 章2.9~2.11 课时 2 教
学目的掌握设计有效算法的分治策略,并掌握范例的设计技巧,主要包括线性时间选择与最接近点对问题,掌握计算算法复杂性方法。
教学
重点及突出方法重点:分治法的基本思想及分治法的一般设计模式。
通过讲解、举例方法。
教学
难点及突破方法难点:鸽舍原理与二维点集算法。
通过讲解、举例、提问与引导方法。
相关内容素材
教学过程
(教师授课思路、设问及讲解要点)
回顾分治法的基本思想及其一般算法的设计模式,介绍分治法的计算效率。
通过线性选择问题与最接近点对问题具体例子讲解采用分治思想设计有效的算法。
1、线性时间选择
先介绍元素选择问题的一般提法;然后介绍如何使用分治方法解决线性时间选择问题;最后分析算法的时间复杂性。
2、最接近点对问题
先介绍分治策略的最接近点对问题的提法并给出常用的解决方法并分析算法时间复杂性;然后介绍一维与二维情形下的最接近点对算法;最后分析算法的效率。
第页
章节第3 章3.1~3.2 课时 2
教学目的理解动态规划算法的概念,掌握动态规划算法的基本要素,掌握设计动态规划算法的步骤,并通过应用范例学习动态规划算法的设计策略。
教学
重点及突出方法重点:动态规划算法的基本思想及设计动态规划算法的步骤。
通过讲解、举例方法。
教学
难点及突破方法难点:最优子结构性质、重叠子问题性质与计算最优值。
通过讲解、举例、提问与引导方法。
相关内容素材
教(教师授课思路、设问及讲解要点)
第页
章节第3 章3.3~3.4 课时 2
教学目的掌握设计动态规划算法的步骤,理解子序列、公共子序列与最长公共子序列的定义,掌握构造最长公共子序列的算法,掌握最大字段和问题的动态规划算法,并能够分析算法的时间复杂性。
教学重点及突出方法重点:最长公共子序列的结构、子问题的递归结构、最优值的求法与如何构造最长公共子序列;求最大子段和问题的不同算法。
通过讲解、举例方法。
教学
难点及突破方法难点:最优子结构性质、重叠子问题性质与计算最优值。
通过讲解、举例、提问与引导方法。
相关
内容
素材
教(教师授课思路、设问及讲解要点)
第页
章节第3 章3.5、3.7 课时 2
教学目的掌握凸多边形及最优三角剖分的概念,理解凸多边形的三角剖分的语法树表示,掌握凸多边形最优三角剖分的动态规划算法,并能够分析算法的时间复杂性;理解图像的表示以及图像的变位压缩存储格式,掌握构造图像压缩问题的动态规划算法及复杂性。
教学重点及突出方法重点:凸多边形的三角剖分的语法树表示、最优子结构性质、凸多边形最优三角剖分的动态规划算法、时间复杂性;图像的变位压缩存储格式,构造图像压缩问题的动态规划算法及复杂性。
通过讲解、举例方法。
教学
难点及突破方法难点:最优子结构性质、图像的变位压缩存储格式、复杂性分析。
通过讲解、举例、提问与引导方法。
相关内容素材
教(教师授课思路、设问及讲解要点)
第页
章节第3 章3.10~3.11 课时 2
教学目的理解0-1背包问题,掌握该问题的动态规划算法,并能够分析算法的时间复杂性;理解最优二叉搜索树问题,掌握最优二叉搜索树的动态规划算法,并能够分析算法的时间复杂性;了解该问题的改进算法及时间复杂性。
教学
重点及突出方法重点:最优子结构性质及递归关系。
通过讲解、举例方法。
教学
难点及突破方法难点:递归关系及时间复杂性分析。
通过讲解、举例、提问与引导方法。
相关内容素材
教学过程
(教师授课思路、设问及讲解要点)
回顾动态规划算法的基本思想。
1、设计动态规划算法的步骤
1)找出最优解的性质,并刻画其结构特征。
2)递归定义最优值。
3)以自底向上的方式计算出最优值。
4)根据计算最优值时得到的信息,构造最优解。
2、0-1背包问题
1)0-1背包问题的形式化描述。
2)动态规划法解0-1背包问题
△问题的最优子结构性质。
△建立递归关系-递归定义最优值。
△计算最优值-算法及复杂性。
△构造最优解。
3、最优二叉搜索树问题
1)二叉搜索树与最优二叉搜索树的概念。
2)动态规划解决最优二叉搜索树算法并分析算法的复杂性。
第页
章节第4 章4.1~4.2 课时 2
教学目的理解贪心算法的概念,掌握贪心算法的基本要素,理解贪心算法与动态规划算法的差异,理解贪心算法的一般理论,通过活动安排问题、最优装载问题范例学习贪心设计策略。
教学重点及突出方法重点:贪心算法的基本要素及一般理论,贪心算法与动态规划算法的差异。
通过讲解、举例方法。
教学
难点及突破方法难点:贪心算法的基本要素。
通过讲解、举例、提问与引导方法。
相关
内容
素材
教(教师授课思路、设问及讲解要点)
学过程回顾动态规划算法的基本思想,然后通过找硬币例子引出贪心算法,并说明有些问题即可以用动态规划方法求解,也可以用贪心算法求解。
1、贪心算法的概念并强调贪心选择方法不一定得到整体最优解。
2、活动安排问题
1)活动安排问题的描述。
2)贪心算法求解活动安排问题
△解活动安排问题的算法及时间复杂性。
△通过实例讲解计算过程。
3、用贪心算法求解的问题的一般特征
1)详细讲解贪心选择性质与最优子结构性质。
2)讲解动态规划算法与贪心算法的差异,并通过0-1背包问题与背包问题介绍它们的不同,重点介绍用贪心算法求解背包问题。
4、详细讲解使用贪心算法求解最优装载问题
1)最优装载问题的贪心选择性质。
2)最优装载问题的最优子结构性质。
3)算法描述。
第页
教学过程
(教师授课思路、设问及讲解要点)
回顾用贪心算法求解的性质。
1、贪心算法的概念并强调贪心选择方法不一定得到整体最优解。
2、详细讲解使用贪心算法求解最优装载问题
1)最优装载问题的贪心选择性质。
2)最优装载问题的最优子结构性质。
3)算法描述。
3、用贪心算法求解多机调度问题
1)详细讲解贪心选择性质。
2)讲解近似算法。
3)举例说明。
第页
章节第5 章5.1~5.2 课时 2
教学目的理解回溯法的深度优先搜索策略,掌握用回溯法解题的算法框架,包括递归回溯、迭代回溯、子集树算法框架、排列树算法框架。
掌握装载问题使用回溯法的设计策略。
教学重点及突出方法重点:回溯法的基本思想及解题步骤,递归回溯、迭代回溯、子集树算法框架以及排列树算法框架、装载问题使用回溯法的设计策略。
通过讲解、举例方法。
教学
难点及突破方法难点:回溯法的递归与迭代实现。
通过讲解、举例、提问与引导方法。
相关内容素材
教学过程
(教师授课思路、设问及讲解要点)
回顾数据结构中的深度优先搜索算法,并重点说明回溯思想。
1、问题的解空间
解空间的定义、解空间的组织。
2、回溯法
回溯法的基本思想、通过两个例子说明回溯法、讲解剪枝函数、回溯法解题步骤。
3、回溯法的实现
递归回溯实现、迭代回溯实现、空间复杂性
4、两类典型的空间树
子集树、排列树、用回溯法搜索子集树的一般算法、用回溯法搜索排列树的一般算法。
5、装载问题
问题描述、举例、解决策略、算法中的约束函数、算法及分析
第页
章节第5 章5.5、5.8 课时 2
教学目的理解回溯法的深度优先搜索策略,掌握用回溯法解题的算法框架,包括递归回溯、迭代回溯、子集树算法框架、排列树算法框架。
掌握n后问题、图的m可着色问题的回溯法的设计策略。
教学
重点及突出方法重点:隐约束变为显式约束、解空间树、递归算法与迭代算法。
通过讲解、举例方法。
教学
难点及突破方法难点:隐约束变为显式约束、解空间树。
通过讲解、举例、提问与引导方法。
相关
内容
素材
教(教师授课思路、设问及讲解要点)
学过程回顾回溯法的基本思想。
1、问题的解空间
解空间的定义、解空间的组织。
2、回溯法求解n后问题
隐约束变为显式约束、解空间树-完全n叉树、递归算法与迭代算法。
3、回溯法求解图的m着色问题
概念:图的色数、图的m可着色优化问题、可平面图、单连通区域特殊问题:四色猜想。
解空间树
递归回溯实现、时间复杂性
第页
教(教师授课思路、设问及讲解要点)
第页
章节第5 章5.2~5.3 课时 2 教
学
目
的。
教学
重点及突出方法重点:。
通过讲解、举例方法。
教学
难点及突破方法难点:。
通过讲解、举例、提问与引导方法。
相关内容素材
(教师授课思路、设问及讲解要点)
教
学
过
程
第页
章节第5 章5.2~5.3 课时 2 教
学
目
的。
教学
重点及突出方法重点:。
通过讲解、举例方法。
教学
难点及突破方法难点:。
通过讲解、举例、提问与引导方法。
相关
内容
素材
教(教师授课思路、设问及讲解要点)
学
过
程
第页
(教师授课思路、设问及讲解要点)
教
学
过
程
第页
章节第5 章5.2~5.3 课时 2 教
学
目
的。
教学
重点及突出方法重点:。
通过讲解、举例方法。
教学
难点及突破方法难点:。
通过讲解、举例、提问与引导方法。
相关内容素材
(教师授课思路、设问及讲解要点)
教
学
过
程
第页
章节第5 章5.2~5.3 课时 2 教
学
目
的。
教学
重点及突出方法重点:。
通过讲解、举例方法。
教学
难点及突破方法难点:。
通过讲解、举例、提问与引导方法。
相关
内容
素材
教(教师授课思路、设问及讲解要点)
学
过
程
第页
(教师授课思路、设问及讲解要点)
教
学
过
程
第页
章节第5 章5.2~5.3 课时 2 教
学
目
的。
教学
重点及突出方法重点:。
通过讲解、举例方法。
教学
难点及突破方法难点:。
通过讲解、举例、提问与引导方法。
相关内容素材
(教师授课思路、设问及讲解要点)
教
学
过
程。