算法和算法的描述教案
算法和算法的描述
一、案例背景信息:
(一)模块:高中信息技术选修1-《算法与程序设计》
(二)年级:高中一年级
(三)所用教材版本:广东教育出版社
(四)学时数:1
二、教学设计:
(一)教学目标
1.充分理解掌握算法的概念及其特点
2.学会用自然语言来准确地描述算法
3.认知流程图的六种基本符号,用流程图描述简单的算法
4.理解科学合理的选择和设计算法
5.通过问题的解决,培养学生观察流程图问题、分析问题和解决问题的能力
(二)内容分析
教学重点:
1. 充分理解掌握算法的概念及其特点
2. 学会用自然语言和流程图来准确地描述算法
教学难点:
学会用自然语言和流程图来准确地描述算法
(三)学生分析
通过前面的学习,学生已经了解到可以用计算机来解决一些较复杂的问题,但具体应该“怎么做”即分析具体问题进行算法设计,仍然会让学生觉得抽象,枯燥,无从下手,因此本节课教师应注意引导学生的兴趣,设计好教学内容,提高学生对以后编程学习的兴趣。(四)教学策略设计
1.教学方法设计
本节课以趣味智力游戏“狼菜羊过河”来激发学生探索解决问题的兴趣,进而总结出算法的概念及特点,在具体案例的分析过程中轻松学会用自然语言和流程图来准确地描述算法,所有内容都以学生独立思考和分组讨论的方式进行,充分调动学生的主观能动性。2.学生上机操作安排和教师应用信息技术的情况
(1)学生以小组为单位,通过玩“狼菜羊过河”的小游戏,记下过河的方案,理解算法的概念;用自然语言描述求解:sum=1+2+3+4+5问题的算法;用流程图表示:计算工人日工资问题;每位同学都启动Visual Basic程序设计环境,输入程序代码,并调试运行。最后通过对比、思考理解科学合理的选择和设计算法的重要性。
(2)计算机教室,投影,网络,PPT导学课件,“狼菜羊过河”的FLASH游戏,求和.frm 三、教与学的实际过程描述
教学阶段及所用时间教师活动学生活动对学生学习过程的观
察和考查
信息技术
的应用
(一)创设情景,激发兴趣1.提出“狼菜羊过河”的
游戏规则
2.演示“狼菜羊过河”的
FLASH游戏
3.点评部分学生的过河方
以小组为单位,玩
一玩“狼菜羊过
河”的小游戏,并
记下过河的方案,
比比看哪一组最
创设问题情景,激发
学生兴趣,观察学生过
河方案的设计是否合
理正确,了解学生对算
法及其特征的理解情
PPT
BBS
“狼菜羊
过河”的
FLASH游戏
案,归纳出过河的正确方
案
4.总结出算法的概念、特
征、三种描述法
快?况
(二)用自然语言表达算法1.讲解用自然语言
描述算法的方法和优缺点
2.过河方案的自然
语言描述
3.点评并归纳出学
生的求和问题的算法
1.认真听课
2.以小组为单位,
用自然语言描述
求解:
sum=1+2+3+
4+5问题的算法
了解学生对自然语言
描述算法的进一步掌
握情况,观查其能否给
出正确的解题步骤。
PPT
BBS
(三)用流程图描述算法1.讲常用的“流程图”
所用的基本符号
2.对照自然语言表达
法,用流程图描述求解
sum=1+2+3+4+5+6
问题的算法
3.点评学生流程图,
小结出“计算工人日工资
问题”的流程图
4.归纳出优缺点
1.认真听课
2. 以小组为单
位,用流程图表
示:计算工人日工
资问题
了解学生能否合理使
用“流程图”的基本
符号来精确描述问题
的算法
PPT
BBS
(四)用程序实现算法1.介绍用程序实现算法的
要点
2. 演示VB程序求解
sum=1+2+3+4+5问题
的程序
每位同学都启动
Visual Basic程
序设计环境,输入
程序代码,并调试
运行。
掌握学生对于输入程
序,调试,检测等步骤
的实践效果
PPT
BBS
求和.frm
(五)算法的择优1.列举华罗庚“烧水泡
茶”的两个算法
2.归纳出一个好算法必须
用到科学的方法
认真听课,对比思
考
理解科学合理的选择
和设计算法
PPT
(六)小结算法的概念、特征及描述方
法,引导科学合理地设计算
法听课,回顾对本节课教学知识的
掌握情况
PPT
算法与算法描述教学设计
算法与算法描述教学设 计 公司内部档案编码:[OPPTR-OPPT28-OPPTL98-OPPNN08]
算法与算法描述教学设计 一、教学目标 (一)知识与技能 1.充分理解掌握算法的概念及其特点 2.学会用自然语言来准确地描述算法 3.认知流程图的六种基本符号,用流程图描述简单的算法 4.理解科学合理的选择和设计算法 (二)过程与方法 1.通过问题的解决,培养学生观察流程图问题、分析问题和解决问题的能力 (三)情感态度与价值观 激发学生学习算法设计的兴趣,使学生积极参与,发挥他们的主动性,激发他们的求知欲;认识计算机只是工具,合理的指挥和控制计算机来解决学习和生活中的问题。 二、内容分析
教学重点: 1. 充分理解掌握算法的概念及其特点 2. 学会用自然语言和流程图来准确地描述算法 教学难点: 学会用自然语言和流程图来准确地描述算法 三、学生分析 在必修模块“编制计算机程序解决问题”部分以及本章第一节的学习中,学生已经经历了用计算机解决问题的基本过程,对VB开发环境有所了解,这些都为本节课的学习提供了良好的基础。(学生对本节内容的学习具备一定的基础知识和学习经验) 本节课有关知识、问题与数学学科联系紧密,学生具有相关的数学基础,因此理解起来相对容易。教学中要关注全体学生,变学生的个体差异为资源,发挥同伴互助作用,共同提高教学效率。 四、教学策略 1、教学方法:讲授法、演示法、任务驱动、情境教学
2、学习方法:协作学习、自主学习 五、教学过程
六、教学反思: 本课充分发挥了学生的主观能动性,在教学中教师一般是提出问题让学生思考探究、注重实践、互动交流;另外举例生动形象,简单明了,学生学习起来兴趣浓厚,学生在轻松愉快的过程中较好的掌握了算法的概念,理解算法的设计和优劣的选择。学生初步接触编程,设计好这堂课的内容,能够激起学生学习编程的兴趣。
算法设计与分析考试题及答案
算法设计与分析考试题 及答案 Company number:【WTUT-WT88Y-W8BBGB-BWYTT-19998】
一、填空题(20分) 1.一个算法就是一个有穷规则的集合,其中之规则规定了解决某一特殊类型问题的一系列运算,此外,算法还应具有以下五个重要特性:确定性 有穷性 可行性 0个或多个输入 一个或多个输出 2.算法的复杂性有时间复杂性 空间复杂性之分,衡量一个算法好坏的标准是 时间复杂度高低 3.某一问题可用动态规划算法求解的显着特征是 该问题具有最优子结构性质 4.若序列X={B,C,A,D,B,C,D},Y={A,C,B,A,B,D,C,D},请给出序列X 和Y 的一个最长公共子序列{BABCD}或{CABCD}或{CADCD } 5.用回溯法解问题时,应明确定义问题的解空间,问题的解空间至少应包含一个(最优)解 6.动态规划算法的基本思想是将待求解问题分解成若干_子问题 ,先求解_子问题 ,然后从这些子问题 的解得到原问题的解。 7.以深度优先方式系统搜索问题解的算法称为回溯法 背包问题的回溯算法所需的计算时间为o(n*2n ) ,用动态规划算法所需的计算时间为o(min{nc,2n }) 9.动态规划算法的两个基本要素是最优子结构 _和重叠子问题 10.二分搜索算法是利用动态规划法实现的算法。 二、综合题(50分) 1.写出设计动态规划算法的主要步骤。 ①问题具有最优子结构性质;②构造最优值的递归关系表达式; ③最优值的算法描述;④构造最优解; 2. 流水作业调度问题的johnson 算法的思想。 ①令N 1={i|a i =b i };②将N 1中作业按a i 的非减序排序得到N 1’,将N 2中作业按b i 的非增序排序得到N 2’;③N 1’中作业接N 2’中作业就构成了满足Johnson 法则的最优调度。 3. 若n=4,在机器M1和M2上加工作业i 所需的时间分别为a i 和b i ,且 (a 1,a 2,a 3,a 4)=(4,5,12,10),(b 1,b 2,b 3,b 4)=(8,2,15,9)求4个作业的最优调度方案,并计算最优值。 步骤为:N1={1,3},N2={2,4}; N 1’={1,3}, N 2’={4,2}; 最优值为:38 4. 使用回溯法解0/1背包问题:n=3,C=9,V={6,10,3},W={3,4,4},其解空间有长度为3的0-1向量组成,要求用一棵完全二叉树表示其解空间(从根出发,左1右0),并画出其解空间树,计算其最优值及最优解。 解空间为{(0,0,0),(0,1,0),(0,0,1),(1,0,0),(0,1,1),(1,0,1), (1,1,0),(1,1,1)}。 解空间树为: 该问题的最优值为:16 最优解为:(1,1,0) 5. 设S={X 1,X 2,···,X n }是严格递增的有序集,利用二叉树的结点来存储S 中的元素,在表示S 的二叉搜索树中搜索一个元素X ,返回的结果有两种情形,(1)在二叉搜索树的内结点中找到X=X i ,其概率为b i 。(2)在二叉搜索树的叶结点中确定X ∈(X i ,X i+1),其概率为a i 。在表示S 的二叉搜索树T 中,设存储元素X i 的结点深度为C i ;叶结点(X i ,X i+1)的结点深度为d i ,则二叉搜索树T 的平均路长p 为多少假设二叉搜索树T[i][j]={X i ,X i+1,···,X j }最优值为m[i][j],W[i][j]= a i-1+b i +···+b j +a j ,则m[i][j](1<=i<=j<=n)递归关系表达式为什么 .二叉树T 的平均路长P=∑=+n i 1 Ci)(1*bi +∑=n j 0 dj *aj
2005.6算法设计与分析课程期末试卷
华南农业大学期末考试试卷(A卷) 2004学年第二学期(2005.6)考试科目:算法设计与分析考试类型:(开卷)考试时间:120分钟 学号姓名年级专业 一、选择题(30分,每题2分) 1、一个算法应该包含如下几条性质,除了 A 。 (A)二义性(B)有限性(C)正确性(D)可终止性 2、解决一个问题通常有多种方法。若说一个算法“有效”是指 D 。 (A)这个算法能在一定的时间和空间资源限制内将问题解决 (B)这个算法能在人的反应时间内将问题解决 (C)这个算法比其他已知算法都更快地将问题解决 (D)A和C 3、当输入规模为n时,算法增长率最小的是 B 。 (A)5n (B)20log2n(C)2n2(D)3nlog3n 4、渐进算法分析是指 B 。 (A)算法在最佳情况、最差情况和平均情况下的代价 (B)当规模逐步往极限方向增大时,对算法资源开销“增长率”上的简化分析(C)数据结构所占用的空间 (D)在最小输入规模下算法的资源代价 5、当上下限表达式相等时,我们使用下列哪种表示法来描述算法代价?C (A)大O表示法(B)大Ω表示法 (C)Θ表示法(D)小o表示法 6、采用“顺序搜索法”从一个长度为N的随机分布数组中搜寻值为K的元素。以下对顺序搜索法分析正确的是 B 。
(A)最佳情况、最差情况和平均情况下,顺序搜索法的渐进代价都相同 (B)最佳情况的渐进代价要好于最差情况和平均情况的渐进代价 (C)最佳情况和平均情况的渐进代价要好于最差情况的渐进代价 (D)最佳情况的渐进代价要好于平均情况的渐进代价,而平均情况的渐进代价要好于最差情况的渐进代价 7、递归通常用 C 来实现。 (A)有序的线性表(B)队列(C)栈(D)数组 8、分治法的设计思想是将一个难以直接解决的大问题分割成规模较小的子问题,分别解决子问题,最后将子问题的解组合起来形成原问题的解。这要求原问题和子问题。C (A)问题规模相同,问题性质相同 (B)问题规模相同,问题性质不同 (C)问题规模不同,问题性质相同 (D)问题规模不同,问题性质不同 9、在寻找n个元素中第k小元素问题中,如快速排序算法思想,运用分治算法对n 个元素进行划分,如何选择划分基准?下面 D 答案解释最合理。 (A)随机选择一个元素作为划分基准 (B)取子序列的第一个元素作为划分基准 (C)用中位数的中位数方法寻找划分基准 (D)以上皆可行。但不同方法,算法复杂度上界可能不同 10、对于0-1背包问题和背包问题的解法,下面 C 答案解释正确。 (A)0-1背包问题和背包问题都可用贪心算法求解 (B)0-1背包问题可用贪心算法求解,但背包问题则不能用贪心算法求解 (C)0-1背包问题不能用贪心算法求解,但可以使用动态规划或搜索算法求解,而背包问题则可以用贪心算法求解 (D)因为0-1背包问题不具有最优子结构性质,所以不能用贪心算法求解 11、关于回溯搜索法的介绍,下面D是不正确描述。 (A)回溯法有“通用解题法”之称,它可以系统地搜索一个问题的所有解或任意解(B)回溯法是一种既带系统性又带有跳跃性的搜索算法 (C)回溯算法在生成解空间的任一结点时,先判断该结点是否可能包含问题的解,如果肯定不包含,则跳过对该结点为根的子树的搜索,逐层向祖先结点回溯 (D)回溯算法需要借助队列这种结构来保存从根结点到当前扩展结点的路径 改:树结构 回溯法,又被称为通用解题法,用它可以系统地搜索问题的所有解。回溯法是一个既带有系统性又带有跳跃性的搜索算法。它在问题的解空间中按深度优先策略,从根结
教科版高中信息技术选修一《算法与程序设计》选修教案.doc
学习必备欢迎下载 第一课初识算法与程序设计 一、教学目标 1、知识与技能 (1)理解算法的概念,培养学生自我探索信息,高效获取信息的能力; (2)能初步利用算法解决简单的问题,培养学生的理论联系实际能力和动 手操作能力。 2、情感、态度、价值观 学生在学习过程中,通过亲身经历体验获得对此算法的感性认识,培养学 生自我获取信息、分析评价信息、、表达呈现信息的能力,进一步提高其信息素养。 二、教学重点难点 重点:算法概念的理解 难点:如何科学合理的选择和设计算法。 三、教学策略与手段 以趣味性问题设置情境,激发学生探索解决问题的兴趣,与学生进行互动 探讨,通过 Flash 演示材料,比较直观地把抽象的问题简单化,使学生的思考 逐步深入,从而总结出算法的概念,学会如何设计和选择算法,培养学生自主 探究学习的能力。 四、教学过程( 1 课时) (一)我们来共同寻找下面一些生活中比较现实的问题的解决方法。 【问题一】天下真的有“不要钱的午餐”吗? 某一餐馆门口海报上写着“不要钱的午餐”,规则如下:在三个月内,来
的顺序都坐一遍,以后来吃饭就可永远免费” 。于是有人想,这太容易了,每人每次坐不同的位置,吃五次不就行了?于是他就叫上自己的朋友参加这项活动,可是,吃了十次之后,还没有吃上免费午餐,这是怎么回事呢? 学生们感觉非常有意思,很快以小组为单位进行热烈的讨论并得出了破解问题 的步骤:①第一个座位5个人都有坐的机会②第二个座位只有4个人中的任一 个有坐的机会(一个人不能同时坐两个座位)③第三个座位只有3个人中的任 一个有坐的机会④第四个座位只有2个人中的任一个有坐的机会⑤第五个座位 只有1个人有坐的机会⑥计算:5×4×3×2×1=120⑦得出结论:需 要吃120次才有可能吃上免费午餐。 【问题二】有三个和尚和三个妖怪过河,只有一条能装下两个人的船,在河的 任何一方或者船上,如果妖怪的人数大于和尚的人数,那么和尚就会有被吃掉 的危险。你能不能找出一种安全的渡河方法呢?请写一写你的渡河方案。学 生:学生讨论回答。 〖展示步骤〗 ①两个妖怪先过河,一个妖怪回来; ②再两个妖怪过河,一个妖怪回来; ③两个和尚过河,一个妖怪和一个和尚回来; ④两个和尚过河,一个妖怪回来; ⑤两个妖怪过河,一个妖怪回来; ⑥两个妖怪过河。 【F lash 动画展示】通过讨论和动画展示,我们可以知道,计算机解决问题和 人解决问题一样需要有清晰的解题步骤。算法就是解决问题的程序或步骤。(二)【课件展示】算法的概念:
算法设计与分析考试题及答案
1.一个算法就是一个有穷规则的集合,其中之规则规定了解决某一特殊类型问题的一系列运算,此外,算法还应具有以下五个重要特性:_________,________,________,__________,__________。 2.算法的复杂性有_____________和___________之分,衡量一个算法 好坏的标准是______________________。 3.某一问题可用动态规划算法求解的显著特征是 ____________________________________。 4.若序列X={B,C,A,D,B,C,D},Y={A,C,B,A,B,D,C,D},请给出序列X 和Y的一个最长公共子序列_____________________________。 5.用回溯法解问题时,应明确定义问题的解空间,问题的解空间至少应包含___________。 6.动态规划算法的基本思想是将待求解问题分解成若干____________,先求解___________,然后从这些____________的解得到原问题的解。 7.以深度优先方式系统搜索问题解的算法称为_____________。 8.0-1背包问题的回溯算法所需的计算时间为_____________,用动态规划算法所需的计算时间为____________。 9.动态规划算法的两个基本要素是___________和___________。 10.二分搜索算法是利用_______________实现的算法。 二、综合题(50分) 1.写出设计动态规划算法的主要步骤。 2.流水作业调度问题的johnson算法的思想。
算法与程序设计》选修教案
第一课初识算法与程序设计 一、教学目标 1、知识与技能 (1)理解算法的概念,培养学生自我探索信息,高效获取信息的能力; (2)能初步利用算法解决简单的问题,培养学生的理论联系实际能力和动手操作能力。 2、情感、态度、价值观 学生在学习过程中,通过亲身经历体验获得对此算法的感性认识,培养学生自我获取信息、分析评 价信息、、表达呈现信息的能力,进一步提高其信息素养。 二、教学重点难点 重点:算法概念的理解 难点:如何科学合理的选择和设计算法。 三、教学策略与手段 以趣味性问题设置情境,激发学生探索解决问题的兴趣,与学生进行互动探讨,通过Flash演示材 料,比较直观地把抽象的问题简单化,使学生的思考逐步深入,从而总结出
算法的概念,学会如何设计 和选择算法,培养学生自主探究学习的能力。 四、教学过程(1课时) (一)我们来共同寻找下面一些生活中比较现实的问题的解决方法。 【问题一】天下真的有“不要钱的午餐”吗? 某一餐馆门口海报上写着“不要钱的午餐”,规则如下:在三个月内,来宾必须凑够五个人,五人 每次来就餐必须按照不同的顺序坐,直到把所有可能的顺序都坐一遍,以后来吃饭就可永远免费” 。于 是有人想,这太容易了,每人每次坐不同的位置,吃五次不就行了?于是他就叫上自己的朋友参加这项 活动,可是,吃了十次之后,还没有吃上免费午餐,这是怎么回事呢? 学生们感觉非常有意思,很快以小组为单位进行热烈的讨论并得出了破解问题的步骤:①第一个座位5 个人都有坐的机会②第二个座位只有4个人中的任一个有坐的机会(一个人不能同时坐两个座位)③第 三个座位只有3个人中的任一个有坐的机会④第四个座位只有2个人中的任一个有坐的机会⑤第五个座 位只有1个人有坐的机会⑥计算:5×4×3×2×1=120⑦得出结论:需要吃120次才有可能
算法设计与分析试卷(2010)
内部资料,转载请注明出处,谢谢合作。 算法设计与分析试卷(A 卷) 一、 选择题 ( 选择1-4个正确的答案, 每题2分,共20分) (1)计算机算法的正确描述是: A .一个算法是求特定问题的运算序列。 B .算法是一个有穷规则的集合,其中之规则规定了一个解决某一特定类型的问题的运算序列。 C .算法是一个对任一有效输入能够停机的图灵机。 D .一个算法,它是满足5 个特性的程序,这5个特性是:有限性、确定性、能 行性、有0个或多个输入且有1个或多个输出。 (2)影响程序执行时间的因素有哪些? A .算法设计的策略 B .问题的规模 C .编译程序产生的机器代码质量 D .计算机执行指令的速度 (3)用数量级形式表示的算法执行时间称为算法的 A .时间复杂度 B .空间复杂度 C .处理器复杂度 D .通信复杂度 (4)时间复杂性为多项式界的算法有: A .快速排序算法 B .n-后问题 C .计算π值 D .prim 算法 (5)对于并行算法与串行算法的关系,正确的理解是: A .高效的串行算法不一定是能导出高效的并行算法 B .高效的串行算法不一定隐含并行性 C .串行算法经适当的改造有些可以变化成并行算法 D. 用串行方法设计和实现的并行算法未必有效 (6)衡量近似算法性能的重要标准有: A .算法复杂度 B .问题复杂度 C .解的最优近似度 D .算法的策略 (7)分治法的适用条件是,所解决的问题一般具有这些特征: A .该问题的规模缩小到一定的程度就可以容易地解决; B .该问题可以分解为若干个规模较小的相同问题; C .利用该问题分解出的子问题的解可以合并为该问题的解 D .该问题所分解出的各个子问题是相互独立的。 (8)具有最优子结构的算法有: A .概率算法 B .回溯法 C .分支限界法 D .动态规划法 (9)下列哪些问题是典型的NP 完全问题: A .排序问题 B .n-后问题 C .m-着色问题 D .旅行商问题 (10)适于递归实现的算法有: A .并行算法 B .近似算法 C .分治法 D .回溯法 二、算法分析题(每小题5分,共10分) (11)用展开法求解递推关系: (12)分析当输入数据已经有序时快速排序算法的不足,提出算法的改进方案。 ???>+-==1 1)1(211)(n n T n n T
算法设计与分析课后部分习题答案
算法实现题3-7 数字三角形问题 问题描述: 给定一个由n行数字组成的数字三角形,如图所示。试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。编程任务: 对于给定的由n行数字组成的数字三角形,编程计算从三角形的顶至底的路径经过的数字和的最大值。数据输入: 有文件input.txt提供输入数据。文件的第1行是数字三角形的行数n,1<=n<=100。接下来的n行是数字三角形各行的数字。所有数字在0-99之间。结果输出: 程序运行结束时,将计算结果输出到文件output.txt中。文件第1行中的数是计算出的最大值。 输入文件示例输出文件示 例 input.txt output.txt 5 30 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 源程序: #include "stdio.h" voidmain() { intn,triangle[100][100],i,j;//triangle数组用来存储金字塔数值,n表示行数 FILE *in,*out;//定义in,out两个文件指针变量 in=fopen("input.txt","r"); fscanf(in,"%d",&n);//将行数n读入到变量n中
for(i=0;i
算法与程序设计教案
算法与程序设计思想 【基本信息】 【课标要求】 (一)利用计算机解决问题的基本过程 (1)结合实例,经历分析问题、确定算法、编程求解等用计算机解决问题的基本过程,认识算法和程序设计在其中的地位和作用。 (2)经历用自然语言、流程图或伪代码等方法描述算法的过程。 (4)了解程序设计语言、编辑程序、编译程序、连接程序以及程序开发环境等基本知识。 【学情分析】 高一年级的学生已具备了一定的观察、思考、分析和解决问题能力,也已有了顺序结构、分支结构、循环结构等知识的储备。因此,对于如何将解决问题的思路画成流程图已有一定的基础,但可能还不很熟练,尤其对刚学过的循环结构,教师在课堂上要注意引导。 『此处说“已有了顺序结构、分支结构、循环结构等知识的储备”,应该是指在必修部分对“计算机解决实际问题的基本过程”已有所体验与了解,或是指已学习过数学中相关模块的知识,这是本案例教学得以实施的必不可少的前提条件。』 【教学目标】 1.知识与技能: 建立求一批数据中最大值的算法设计思想,并将算法的设计思想用流程图表示出来。 2.过程与方法: 利用现实生活中比较身高的活动,以及对武术比赛中“打擂台”流程的逐步梳理,让学生学会从此类生活实际中提炼出求最大值的思想方法,即算法思想。 培养学生分析问题、解决问题的能力,让学生学会在面对问题时能梳理出解决问题的清晰思路,进而设计出解决某个特定问题的有限步骤,从而理解计算机是如何解决、处理某种问题的。 『在过程上,通过现实生活中的实例来引导学生总结“求最大值”的算法思想。过程的实现关键在于实例引用是否贴切,是否有利于学生向抽象结论的构建。本案例的实例选择是符合这一要求的。在方法上,注重培养学生分析、解决问题的一般能力,再次体验与理解应用计算机解决问题的基本过程,为后面更一步的学习打下基础,积累信心。』 3.情感态度与价值观:
算法设计与分析试卷及答案
湖南科技学院二○年学期期末考试 信息与计算科学专业年级《算法设计与分析》试题 考试类型:开卷试卷类型:C卷考试时量:120分钟 题号一二三四五总分统分人 得分 阅卷人 复查人 一、填空题(每小题3 分,共计30 分) 1、用O、Ω与θ表示函数f与g之间得关系______________________________。 2、算法得时间复杂性为,则算法得时间复杂性得阶为__________________________。 3、快速排序算法得性能取决于______________________________。 4、算法就是_______________________________________________________。 5、在对问题得解空间树进行搜索得方法中,一个活结点最多有一次机会成为活结点得就是_________________________。 6、在算法得三种情况下得复杂性中,可操作性最好且最有实际价值得就是_____情况下得时间复杂性。 7、大Ω符号用来描述增长率得下限,这个下限得阶越___________,结果就越有价值。。 8、____________________________就是问题能用动态规划算法求解得前提。 9、贪心选择性质就是指____________________________________________________________________________________________________________________。 10、回溯法在问题得解空间树中,按______________策略,从根结点出发搜索解空间树。 二、简答题(每小题10分,共计30分) 1、试述回溯法得基本思想及用回溯法解题得步骤。 2、有8个作业{1,2,…,8}要在由2台机器M1与M2组成得流水线上完成加工。每个作业加工得顺序都就是先在M1上加工,然后在M2上加工。M1与M2加工作业i所需得时间分别为: M110 2 8 12 6 9414
算法设计与分析课程设计(完整版)
HUNAN CITY UNIVERSITY 算法设计与分析课程设计 题目:求最大值与最小值问题 专业: 学号: 姓名: 指导教师: 成绩: 二0年月日
一、问题描述 输入一列整数,求出该列整数中的最大值与最小值。 二、课程设计目的 通过课程设计,提高用计算机解决实际问题的能力,提高独立实践的能力,将课本上的理论知识和实际有机的结合起来,锻炼分析解决实际问题的能力。提高适应实际,实践编程的能力。在实际的编程和调试综合试题的基础上,把高级语言程序设计的思想、编程巧和解题思路进行总结与概括,通过比较系统地练习达到真正比较熟练地掌握计算机编程的基本功,为后续的学习打下基础。了解一般程序设计的基本思路与方法。 三、问题分析 看到这个题目我们最容易想到的算法是直接比较算法:将数组的第 1 个元素分别赋给两个临时变量:fmax:=A[1]; fmin:=A[1]; 然后从数组的第 2 个元素 A[2]开始直到第 n个元素逐个与 fmax 和 fmin 比较,在每次比较中,如果A[i] > fmax,则用 A[i]的值替换 fmax 的值;如果 A[i] < fmin,则用 A[i]的值替换 fmin 的值;否则保持 fmax(fmin)的值不变。这样在程序结束时的fmax、fmin 的值就分别是数组的最大值和最小值。这个算法在最好、最坏情况下,元素的比较次数都是 2(n-1),而平均比较次数也为 2(n-1)。 如果将上面的比较过程修改为:从数组的第 2 个元素 A[2]开始直到第 n 个元素,每个 A[i]都是首先与 fmax 比较,如果 A[i]>fmax,则用 A[i]的值替换 fmax 的值;否则才将 A[i]与 fmin 比较,如果 A[i] < fmin,则用 A[i]的值替换 fmin 的值。 这样的算法在最好、最坏情况下使用的比较次数分别是 n-1 和 2(n-1),而平均比较次数是 3(n-1)/2,因为在比较过程中,将有一半的几率出现 A[i]>fmax 情况。
高中信息技术算法与程序设计教案沪教版选修1
解析法 一、基本说明 1、教学内容所属模块:信息技术选修1《算法与程序设计》 2、年级:高一年级 3、所用教材出版单位:上海科技教育出版社 4、所属的章节:第三章第一节 5、学时数:45分钟 二、教学设计 1、教学目标: (1)了解解析算法的基本概念。通过实例的学习,掌握用解析算法设计程序的基本思路。 (2)学会根据问题寻找恰当算法和解决问题的方法,并进一步理解分析问题、设计算法、编写程序、调试程序这一用计算机解决问题的过程和方法。 (3)学会合作、交流,培养勇于实践、勤于思考和善于总结的精神和态度。 2、内容分析: 本节内容为用解析法设计程序,解析法是一种最基本的常用算法,在之前三种基本结构程序设计的例题分析中也曾使用过,该算法的分析也为今后的各种算法学习做好了准备。本课教学重点是“理解解析算法的思想,能写出求解问题的解析式并用程序实现”,本课的教学难点是“如何学会分析问题,合理设计算法,建立求解问题的解析式”。 3、学情分析: 学生已经具备了可视化编程的能力及程序设计的基本技能,这样就可以将教学的重点放在算法的分析上,培养学生解决实际问题的能力。 4、设计思路: 本课采用一个测量树高的例子进行引入,用简单的例子分析解析算法,然后采用教材上的活动“求解铁丝问题”让学生掌握解析算法的实现过程,用“求岛屿面积”的实践环节巩固学生的学习。课堂教学中主要采用任务驱动、分析归纳、小组合作、自主探究相结合的学习方法。
题 2’ 从A、B两点仰角的角度与两点之 间的距离可计算出MN的高度。 引出课题:解析法 探究学习 8’[学习任务一] 问题:MN是竖直于地面的物体, 其底部N不可到达。为了测量MN 的高度,在地面上选取一条与MN 在同一平面的水平线线段AB为 基线,测得AB的长为a=20米, 在A点向M点张望的仰角α =38.4°,在B点向M点张望的仰 角β=22.8°。试设计程序计算高 度MN。 要求:完成“学习任务一”(填 写电子文档) 1、问题分析:怎样写出计算表达 式。(请学生回答) 2、设计求解表达式MN=a/(1/tan β- 1/tanα)的算法。 (以下部分小组合作完成) 3、实现应用程序:老师提供程序 的可视化界面及不完整的程序, 要求学生程序填空,完善程序。 4、将程序输入到程序窗体的按钮 中并调试计算本题结果。附带计 算学校中一棵桂花树和一棵龙柏 的高度。 1、由α、β与a 推导出计算表达 式。 2、根据计算表达 式,分析解题算 法。 3、小组合作,填 空完成程序,交流 填空结果。 4、复制程序,调 试并得出运算结 果。 让学生在 老师的带 领下了解 解析法解 题的一般 过程。 学习小结2’老师提问:请同学说说求解任务 一的步骤是怎样的? 老师用流程图表示这个步 骤,提出解析法的概念。 了解解析算法的 概念。 让学生初 步了解解 析算法的 概念。 [学习任务二]求解“铁丝问题” “智力大比拼”活动: (1)一根长为6米,可制作一个 2平方米的矩形框,问该矩形长 和宽各为多少? (2)上面同样的问题,制作的面 积为2.1平方米,那么长、宽各 参与“智力大比 拼”活动。 产生计算机程序 解决问题与简单 人脑思维运算的 比较。 让学生参 与“智力大 比拼”活 动,产生冲 突,激发学 生学习的 兴趣。
高中信息技术 算法与程序设计-递归算法的实现教案 教科版
递归算法的实现 【基本信息】 【课标要求】 (三)算法与问题解决例举 1. 内容标准 递归法与问题解决 (1)了解使用递归法设计算法的基本过程。 (2)能够根据具体问题的要求,使用递归法设计算法、编写递归函数、编写程序、求解问题。 【教材分析】 “算法的程序实现”是《算法与程序设计》选修模块第三单元的内容,本节课是“递归算法的程序实现”,前面学习了用解析法解决问题、穷举法解决问题、在数组中查找数据、对数进行排序以及本节的前一小节知识点“什么是自定义函数”的学习,在学习自定义函数的基础上,学习递归算法的程序实现是自定义函数的具体应用,培养学生“自顶向下”、“逐步求精”的意识起着重要的作用。 『递归算法在算法的学习过程中是一个难点,在PASCAL和C语言等程序语言的学习过程中,往往是将其放在“函数与过程”这一章节中来讲解的。递归算法的实现也是用函数或是过程的自我调用来实现的。从这一点上来讲,作者对教材的分析与把握是准确的,思路是清晰的,目标是明确的。』 【学情分析】 教学对象是高中二年级学生,前面学习了程序设计的各种结构,在学习程序设计各种结构的应用过程中培养了用计算机编程解决现实中问题的能力,特别是在学习循环语句的过程中,应用了大量的“递推”算法。前一节课学习了如何自定义函数,在此基础上学习深入学习和体会自定义函数的应用。以递推算法的逆向思维进行求解问题,在学习过程中体会递归算法的思想过程。多维度的思考问题和解决问题是提高学生的学习兴趣关键。 『递归算法的本质是递推,而递推的实现正是通过循环语句来完成的。作者准确把握了学生前面的学习情况,对递归算法的本质与特征也分析的很透彻,可以说作者对教学任务的分析是很成功的,接来就要看,在成功分析的基础上作者是如何通过设计教学来解决教学难点的了。』 【教学目标】
计算机算法设计与分析期末考试复习题
1、二分搜索算法是利用( A )实现的算法。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法 2、下列不是动态规划算法基本步骤的是( A )。 A、找出最优解的性质 B、构造最优解 C、算出最优解 D、定义最优解 3、最大效益优先是( A )的一搜索方式。 A、分支界限法 B、动态规划法 C、贪心法 D、回溯法 4、最长公共子序列算法利用的算法是( B )。 A、分支界限法 B、动态规划法 C、贪心法 D、回溯法 5. 回溯法解TSP问题时的解空间树是( A )。 A、子集树 B、排列树 C、深度优先生成树 D、广度优先生成树6.下列算法中通常以自底向上的方式求解最优解的是( B )。 A、备忘录法 B、动态规划法 C、贪心法 D、回溯法 7、衡量一个算法好坏的标准是(C )。 A 运行速度快 B 占用空间少 C 时间复杂度低 D 代码短 8、以下不可以使用分治法求解的是(D )。 A 棋盘覆盖问题 B 选择问题 C 归并排序 D 0/1背包问题 9. 实现循环赛日程表利用的算法是( A )。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法 10、实现最长公共子序列利用的算法是( B )。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法11.下面不是分支界限法搜索方式的是( D )。 A、广度优先 B、最小耗费优先 C、最大效益优先 D、深度优先 12.下列算法中通常以深度优先方式系统搜索问题解的是( D )。 A、备忘录法 B、动态规划法 C、贪心法 D、回溯法 13. 一个问题可用动态规划算法或贪心算法求解的关键特征是问题的( B )。 A、重叠子问题 B、最优子结构性质 C、贪心选择性质 D、定义最优解14.广度优先是( A )的一搜索方式。 A、分支界限法 B、动态规划法 C、贪心法 D、回溯法 15.背包问题的贪心算法所需的计算时间为( B )。
算法设计与分析课程设计报告
压缩软件课程设计书 一、问题描述: 建立一个文本文件,统计该文件中各字符频率,对各字符进行Huffman编码,将该文件至翻译成Huffman编码文件,再将Huffman编码文件翻译成原文件。 二、算法分析及思路: 对于该问题,我们做如下分析: (1)首先得构造出哈弗曼树,我们用函数HuffmanTree(int w[],int s[],int n)设计;(2)在构建哈弗曼树的基础上,进一步实现哈弗曼编码问题,我们用函数Huffmancode(char wen[])设计; (3)实现哈弗曼编码后再进一步实现哈弗曼译码问题,我们用函数Huffmandecode()设计; (4)其中编码问题中,得进一步统计出各个字符在文件中的频率,并进行一些必要的标记,我们用函数runhuffman(char wen[])设计; (5)在译码过程中,还有必要的一步是比较原文件与译码后的文件是否相同,我们用函数compare(char wen[])设计; (6)其中的文件输入我们用到类”fstream.h”中的输入输出流,并在运行的文件夹中建立一个文件名为逍遥游的文本文件,且在逍遥游文件中输入需要编码的数据。 三、主要解决的设计问题: 1.写一个对txt文件压缩和解压的程序,使用动态编码。 2.使用Huffman编码压缩和解压时,Huffman树的存储可以直接存储树结构,也可以存储所有字符的频度或权值,然后读取时建立Huffman树; 3.使用Huffman编码压缩和解压时,注意定义压缩码的结束标记,可以使用一个特殊的字符作为结束标记,也可以在压缩码之前存储其比特长度;如果使用一个特殊字符作为结束标记,则其频度为1,需要在建立Huffman树时把它看作一个独立的字符进行建树。 4.使用Huffman编码压缩和解压时,在一个缓冲区里面收集压缩码比特流,每当收集的比特数满8时,可以把这8比特通过位操作合并成一个字节写入文件(当然也可以收集满一定数目的字节后再写入文件)。写入文件的最小信息单位为字节。 四、程序设计的流程图:
算法与程序设计(教科版)教案
算法与程序设计(教科版)教案 1-1节计算机解决问题的过程 一、教学目标 1、知识与技能 (1)让学生了解算法、穷举法、程序设计语言、编写程序和调试程序等概念。 (2)让学生知道对现实问题的自然语言的描述,特别是类似程序设计语言的自然语言描述。 (3)让学生理解分析问题、设计算法、编写程序、调试程序这一用计算机解决问题的基本步骤,认识其在算法与程序设计中的作用。 2、方法与过程 (1)培养学生发现旧知识的规律、方法和步骤,并把它运用到新知识中去的能力。 (2)培养学生调试程序的能力。 (3)培养学生合作、讨论、观摩、交流和自主学习的能力。 3、情感态度和价值观 通过“韩信点兵”这个富有生动情节的实例和探究、讲授、观摩、交流等环节,让学生体验用计算机解决问题的基本过程。 二、重点难点 本节的重点用计算解决问题的过程中的分析问题、设计算法、和上机调试程序等步骤。用计算机解决问题的过程中的分析问题、设计算法也是本节的难点。 三、教学环境 1、教材处理 教学内容选用中华人民共和国教育部制订的《普通高中技术课程标准》(2003年4月版)中信息技术部分的选修模块1“算法与程序设计”第一章的第一课“计算机解决问题的过程”。教材选用《广东省普通高中信息技术选修一:算法与程序设计》第三章第一节,建议“算法与程序设计”模块在高中一年级下学期或高中二年级开设。 根据2003年4月版《普通高中技术课程标准》的阐述,“算法与程序设计”是普通高中信息技术的选修模块之1,它的前导课程是信息技术的必修模块“信息技术基础”。学生在“信息技术基础”模块里已经学习了计算机的基本操作,掌握了启动程序、窗口操作和文字编辑等基础知识。学生可以利用上述的基础知识,用于本节课的启动Visual Basic程序设计环境,输入程序代码,运行程序等操作。本节课“计算机解决问题的过程”是“算法与程序设计”模块的第一节课,上好这节课是使学生能否学好“算法与程序设计”这一模块的关键。本节课的教学目的是让学生理解分析问题、设计算法、编写程序和调试程序等用计算机解决问题的基本过程,认识其在算法与程序设计中的地位和作用,它也是后续课程如模块化程序设计、各种算法设计等课程的基础。 让学生在人工解题中发现分析问题、设计算法等步骤,并把它应用到用计算机解决问题中去,这是构建主义中知识迁移的方法。本节课还采用了探究、讲授、观摩、交流、阅读材料等多种教学活动的有机结合的方法。 2、预备知识 本节课相联系的旧知识是计算机的基本操作中鼠标、键盘操作,启动、关闭程序,窗口、菜单操作和文字编辑等基础知识,还有解决数学问题的步骤等知识。 3、硬件要求
算法和算法的描述
算法和算法的描述 一、教学内容 算法和算法的描述 二、教学目标 1.充分理解掌握算法的概念及其特点 2.学会用自然语言来准确地描述算法 3.认知流程图的六种基本符号,用流程图描述简单的算法 4.理解科学合理的选择和设计算法 5.通过问题的解决,培养学生观察流程图问题、分析问题和解决问题的能力 三、重点难点 1.学会用自然语言和流程图来准确地描述算法 2.算法的三种基本结构 四、教学过程 (一)算法的的概念及自然语言描述 教师活动:说明”狼菜羊过河”的游戏规则 学生活动:前后四个同学为一组,设计方案,比一比看哪组同学最快完成。记录实际过河过程,完成学案中相关应部分内容的填写
教师活动:指导学生将自己的方案用规范的自然语言的形式表示(学案)样例:过河的方案: 第一步:人和羊过河,人返回,留下羊; 第二步:人和狼过河,人和羊返回,留下狼; 第三步:人和菜过河,人返回,留下菜; 第四步:人和羊过河。 教师活动:收集学生的过河方案,并将其用自然语言的形式展示于黑板上教师小结: 1、算法的概念 2、算法的特征 3、算法的择优 (二)用流程图描述算法 教师活动:介绍流程图的作用,讲解流程图所用的基本符号及功能 学生活动:在学案中完成流程图的拼接 教师活动:点评学生流程图,对照自然语言表达归纳流程图表达的优缺点(三)用程序实现算法 教师讲解:编写程序即把人们设计的算法转换成计算机能够识别的代码。
(四)算法的三种基本结构 1、顺序结构 2、分支结构 3、循环结构 (五)课堂小结 1.算法形成的过程:自然语言表示的算法----流程图表示的算法----算法的程序表示 五、教学反思 1、整个课堂教学气氛非常活跃,条理清楚,不同层次的学生都能积极参与到课堂讨论中来。主要得益于两个方面:一是利用两个生动且富有挑战性的经典问题,二是教师的演示和学生动手调试程序环节,将学生牢牢的吸引住;同时本课很多内容都是基于高一数学模块三中的已学知识,知识点的难度小。如算法及其描述方式在高一数学中已有介绍,所以整堂课学生的参与度高。 2、本节课利用问题导学法进行教学,让学生对问题进行探究,有效的调动了学生的学习积极性。 3、本节课的课堂气氛没有预想中的好,可能与教学内容和问题的设置有一定的关系,这也从一定程度上反映出学生对于算法存在畏惧心理,对于老师提的问题不敢大胆发言。
算法设计与分析课程设计-实验指导书
算法设计与分析课程设计 实验指导书 上海第二工业大学 计算机与信息学院软件工程系
一、运动员比赛日程表 设有n=2k个运动员要进行网球比赛。设计一个满足以下要求的比赛日程表: ●每个选手必须与其它n-1个选手各赛一次 ●每个选手一天只能赛一次 ●循环赛一共进行n-1天 1、运用分治策略,该问题的递归算法描述如下,根据算法编制程序并上机 通过。 输入:运动员人数n(假定n恰好为2的i次方) 输出:比赛日程表A[1..n,1..n] 1. for i←1 to n //设置运动员编号 2. A[i,1]←i 3. end for 4. Calendar(0,n) //位移为0,运动员人数为n。 过程Calendar(v, k) //v表示位移(v=起始行-1),k表示运动员人数。 1. if k=2 then //运动员人数为2个 2. A[v+2,2]←A[v+1,1] //处理右下角 3. A[v+1,2]←A[v+2,1]//处理右上角 4. else 5. Calendar(v,k/2) //假设已制定了v+1至v+k/2运动员循环赛日程表 6. Calendar(v+k/2,k/2) //假设已制定了v+k/2+1至v+k运动员循环赛日程表 7. comment:将2个k/2人组的解,组合成1个k人组的解。 8. for i←1 to k/2 9. for j←1 to k/2 10. A[v+i+k/2,j+k/2]←A[v+i,j] //沿对角线处理右下角 11. end for 12. end for 13. for i←k/2+1 to k 14. for j←1 to k/2 15. A[v+i-k/2,j+k/2]←A[v+i,j] //沿对角线处理右上角 16. end for 17. end for 18. end if 2、编制该问题的非递归算法,上机通过。 将如上文件保存在命名为“学号+姓名+实验一”的文件夹中并上传到指定的服务器。
算法设计与分析试题与答案
一、填空题(20分) 1.一个算法就是一个有穷规则的集合,其中之规则规定了解决某一特殊类型问题的一系列运算,此外,算法还应具有以下五个重要特性: 确定性,有穷性,可行性,0个或多个输入,一个或多个输出。 2.算法的复杂性有时间复杂性和空间复杂性之分,衡量一个算法好坏的标准是时间复杂度高低。 3.某一问题可用动态规划算法求解的显著特征是该问题具有最优子结构性质。 4.若序列X={B,C,A,D,B,C,D},Y={A,C,B,A,B,D,C,D},请给出序列X和Y的一个最长公共子序列{BABCD}或{CABCD}或{CADCD}。 5.用回溯法解问题时,应明确定义问题的解空间,问题的解空间至少应包含一个(最优)解。 6.动态规划算法的基本思想是将待求解问题分解成若干子问题,先求解子问题,然后从这些子问题的解得到原问题的解。 7.以深度优先方式系统搜索问题解的算法称为回溯法。 8.0-1背包问题的回溯算法所需的计算时间为o(n*2n) ,用动态规划算法所需的计算时间为o(min{nc,2n})。 9.动态规划算法的两个基本要素是最优子结构和重叠子问题。 10.二分搜索算法是利用动态规划法实现的算法。 二、综合题(50分) 1.写出设计动态规划算法的主要步骤。 ①问题具有最优子结构性质;
②构造最优值的递归关系表达式; ③最优值的算法描述; ④构造最优解; 2.流水作业调度问题的johnson算法的思想。 ②N1={i|ai