ImageVerifierCode 换一换
格式:DOC , 页数:21 ,大小:172.04KB ,
资源ID:2656152      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2656152.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(算法设计与分析试验参考指导书.doc)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

算法设计与分析试验参考指导书.doc

1、算法设计和分析实 验 指 导 书东北大学软件学院目 录算法设计和分析1实 验 指 导 书1前 言3试验要求4试验1 分治法应用(2课时)51.试验目标52.试验类型53.预习要求54.试验基础要求55.试验基础步骤7试验2动态计划(2课时)91.试验目标92.试验类型93.预习要求94.试验基础要求95.试验基础步骤10试验3 回溯法(4课时)121.试验目标122.试验类型123.预习要求124.试验基础要求125.试验基础步骤13前 言算法设计和分析是一门面向设计,处于计算机科学和技术学科关键地位教育课程。经过对计算机算法系统学习,使学生了解和掌握计算机算法通用设计方法,培养对算法计算复杂

2、性正确分析能力,为独立设计算法和对算法进行复杂性分析奠定基础。要求掌握算法复杂度分析、分治法、动态计划法、贪心法、回溯法、分支限界法等算法设计方法及其分析方法。能将这些方法灵活应用到对应问题中,而且能够用C+实现所包含算法,并尽可能做到低复杂度,高效率。经过本课程试验,使学生加深对课程内容了解,培养学生严密思维能力,利用所学知识结合具体问题设计适用算法能力;培养学生良好设计风格,激励学生发明新算法和改善旧算法愿望和热情。期望同学们能够充足利用试验条件,认真完成试验,从试验中得到应有锻炼和培养。期望同学们在使用本试验指导书及进行试验过程中,能够帮助我们不停地发觉问题,并提出提议,使算法设计和分析

3、课程成为对大家有益课程。试验要求算法设计和分析课程试验目标是为了使学生在课堂学习同时,经过一系列试验,使学生加深了解和愈加好地掌握算法设计和分析课程教学纲领要求内容。在算法设计和分析课程试验过程中,要求学生做到:(1)仔细观察调试程序过程中出现多种问题,统计关键问题,做出必需说明和分析。(2)认真书写试验汇报。试验汇报模板见附录1。(3)遵守机房纪律,服从教导老师指挥,珍惜试验设备。(4)试验课程不迟到。如有事不能出席,所缺试验通常不补。(5)本试验采取开发环境为 Microsoft Visual C+ 6.0,同学在做试验之前要求熟悉该软件使用方法。(6)试验成绩关键从以下几方面考评:试验过

4、程态度,试验结果及汇报书写。试验1 分治法应用(2课时)1.试验目标(1) 了解分治法思想。(2) 掌握用分治法处理问题2.试验类型设计型3.预习要求熟悉Visual C+ 6.0上机编程调试基础方法。掌握教材上分治法思想,掌握多种排序方法及二分搜索思想。4.试验基础要求(1) 仔细阅读备选试验题目,选择一个(可选多个)作为此次试验题目,设计程序要满足正确性,代码中相关键注释,书写格式清楚,简练易懂,效率较高,利用C模板,设计程序通用性好,适合多种合理输入,并能对不合理输入做出正确提醒。(2) 可供选择题目有以下3个:(i) 中位数问题 问题描述设X 0 : n - 1和Y 0 : n 1 为

5、两个数组,每个数组中含有n个已排好序数。找出X和Y2n个数中位数。 编程任务 利用分治策略试设计一个O (log n)时间算法求出这2n个数中位数。 数据输入由文件input.txt提供输入数据。文件第1行中有1个正整数n(n=200),表示每个数组有n个数。接下来两行分别是X,Y数组元素。 结果输出 程序运行结束时,将计算出中位数输出到文件output.txt中。输入文件示例输出文件示例input.txtoutput.txt35 15 183 14 2114 实现提醒 比较两个序列中位数大小,假如两个数相等,则该数为整个2n个数据中位数,不然经过比较,分别降低两个序列查找范围,确定查找起止位

6、置,继续查找。(ii) Gray码问题 问题描述Gray码是一个长度为2n序列。序列中无相同元素,每个元素全部是长度为n位串,相邻元素恰好只有一位不一样。用分治策略设计一个算法对任意n结构对应Gray码。 编程任务 利用分治策略试设计一个算法对任意n结构对应Gray码。 数据输入由文件input.txt提供输入数据n。 结果输出 程序运行结束时,将得到全部编码输出到文件output.txt中。输入文件示例输出文件示例input.txtoutput.txt3000100101010011111101001 实现提醒 把原问题分解为两个子问题,分别对两个子问题每个数组后一位加0和1。(iii)归并

7、排序 问题描述现在网上拍卖系统会显示很多待拍卖物品,通常这些系统含有根据某个关键字对打出广告进行排序列出功效,而且能够根据用户输入某个关键字进行过虑,找到一些特定物品。 编程任务 定义一个Advertisement类,该类中最少包含该物品数量,名称,联络人e-mail,最好有开拍时间及关闭时间,依据用户输入关键字比如名称,mail,时间等,利用非递归归并排序对全部广告进行排序,并列出全部排好序广告。 数据输入由文件input.txt提供输入全部广告信息。程序中由用户输入要排序关键字。 结果输出 程序运行结束时,排好序广告输出到文件output.txt中,并为每个广告添加序号。输入文件示例输出文

8、件示例input.txtoutput.txtCoat(物品名称)3(数量)Skirt5Cap7Bag12Title(用户输入根据title排序)1Bag122Cap73Coat(物品名称)3(数量)4Skirt5 (3) 根据指定格式书写试验汇报,试验汇报清楚,但不赘述,字体最大为四号。在试验结束一周内上交试验汇报。5.试验基础步骤(1) 选定试验题目,仔细阅读试验要求,设计好输入输出,根据分治法思想构思算法,选择适宜存放结构实现应用操作。(2) 设计结果应在Visual C+ 试验环境下实现并进行调试。(3) 试验要有具体测试统计,包含多种可能测试数据。实 验 报 告课程名称:算法设计和分析

9、班级:软件1304 试验成绩:试验名称:分治策略学号:4726批阅老师签字:试验编号:试验一姓名:赵航试验日期: 1月 1 日指导老师:张莉组号:试验时间: 时 分 时 分一、试验目标了解分治法思想。掌握用分治法处理问题二、试验内容(i) 中位数问题 问题描述设X 0 : n - 1和Y 0 : n 1 为两个数组,每个数组中含有n个已排好序数。找出X和Y2n个数中位数。 编程任务 利用分治策略试设计一个O (log n)时间算法求出这2n个数中位数。 数据输入由文件input.txt提供输入数据。文件第1行中有1个正整数n(n=200),表示每个数组有n个数。接下来两行分别是X,Y数组元素。

10、三、试验环境WINDOWS7家庭版DEVC+四、问题分析(1) 分析要处理问题,给出你思绪,能够借助图表等辅助表示。设两个长度为n数列分别为x 0 : n -1和y 0 : n -1,分别找出这两个数列中位数xi和y j ,二者进行比较,依据比较结果能够在每个数列中降低二分之一搜索范围,然后再分别取两个子数列中位数再比较,再降低搜索范围,继续下去直到找到最终结果(2) 分析利用你想法处理该问题可能会有怎样时空复杂度。O(n)(3) 其它(你认为需要在此说明)五、问题处理(1) 依据对问题分析,写出处理措施。设两个长度为n数列分别为x 0 : n -1和y 0 : n -1,分别找出这两个数列中

11、位数xi和y j ,二者进行比较,依据比较结果能够在每个数列中降低二分之一搜索范围,然后再分别取两个子数列中位数再比较,再降低搜索范围,继续下去直到找到最终结果(2) 描述你在进行实现时,关键函数或操作内部关键算法;分析这个算法时、空复杂度,并说明你设计巧妙之处,如有创新,将其清楚表述。int findMedian(int* x, int* y, int n) if(n=1) return *x = *y? *x:*y; int m=(n-1)/2; int p=m+1; if(n%2!=0) p-; if(*(x+m)=*(y+m) return *(x+m); else if(*(x+m)

12、*(y+m) return findMedian(x+p,y,m+1); else return findMedian(x,y+p,m+1);O(n)算法巧妙之处于于分别找出这两个数列中位数xi和y j ,二者进行比较,依据比较结果能够在每个数列中降低二分之一搜索范围,然后再分别取两个子数列中位数再比较,再降低搜索范围,继续下去直到找到最终结果(3) 针对你所选问题,你认为应该尤其注意哪些方面处理?比如循环何时结束等。分别找出这两个数列中位数xi和y j ,二者进行比较,直到最终结果。(4) 你在调试过程中发觉了怎样问题?又做了怎样改善?在调试中发觉了编译不经过,经检验是语法问题。(5) 其它

13、(你认为需要在此说明)六、试验结果总结回复以下问题:(1) 对不一样输入,该算法全部存在哪几类可能出现情况,你测试数据完全覆盖了你所想到这些情况,测试结果怎样?1、一般 2、数组中只有一个数 结果以下 (2) 算法实现复杂度在问题规模很大时能够接收吗?能够(3) 假如不用分治方法还能想到其它处理方法吗?和分治相比会有愈加好效率吗?有:将二者放到同一数组然后排序取中值,效率更低。(4) 所选择数据结构适宜吗?选择数组,适宜。(5) 叙述经过试验你对分治方法了解及你认为分治法优缺点。分治法优点是将大问题拆成小问题来进行处理,能够节省时间。(6) 其它(你认为需要在此说明)六、附录(1) 假如你对这

14、个试验还有其它处理方案或设想,或对我们试验方案有什么意见,请在此描述。(2) 试验参考资料和网址 注:本试验考评点关键在问题分析是否正确,对问题考虑是否全方面,处理方法及程序是否正确,程序代码是否清楚,是否符合编码规范,是否有注释,测试数据是否完整,是否有创新。试验2动态计划(2课时)1.试验目标(1) 熟练掌握动态计划思想及教材中相关经典算法。(2) 掌握用动态计划解题基础步骤,能够用动态计划处理部分问题。2.试验类型设计型3.预习要求掌握动态计划思想,复习学过相关动态计划算法,并设计试验题目标程序。4.试验基础要求(1) 仔细阅读备选试验题目,选择一个(可选多个)作为此次试验题目,设计程序

15、要满足正确性,代码中相关键注释,书写格式清楚,简练易懂,效率较高,利用C模板,设计程序通用性好,适合多种合理输入,并能对不合理输入做出正确提醒。(2) 可供选择题目有以下2个:(i)找零钱问题(难度系数为3) 问题描述设有n种不一样面值硬币,各硬币面值存于数组T1:n中。现要用这些面值硬币来找钱,能够实用多种面值硬币个数不限。当只用硬币面值T1,T2,Ti时,可找出钱数j最少硬币个数记为C(i,j)。若只用这些硬币面值,找不出钱数j时,记C(i,j)=。 编程任务 设计一个动态计划算法,对1jL,计算出全部C( n,j )。算法中只许可实用一个长度为L数组。用L和n作为变量来表示算法计算时间复

16、杂性 数据输入由文件input.txt提供输入数据。文件第1行中有1个正整数n(n=13),表示有n种硬币可选。接下来一行是每种硬币面值。由用户输入待找钱数j。 结果输出 程序运行结束时,将计算出所需最少硬币个数输出到文件output.txt中。输入文件示例输出文件示例input.txtoutput.txt31 2 593 实现提醒 首先要建立递归关系,并将分析过程写在汇报中。(ii) 租用游艇问题(难度系数为4) 问题描述长江游艇俱乐部在长江上设置了n个游艇出租站1,2,n。游客可在这些游艇出租站租用游艇,并在下游任何一个游艇出租站归还游艇。游艇出租站i到游艇出租站j之间租金为r(i,j),

17、1ijn。试设计一个算法,计算出从游艇出租站1到游艇出租站n所需最少租金。 编程任务对于给定游艇出租站i到游艇出租站j之间租金为r(i,j),1ijn,编程计算从游艇出租站1到游艇出租站n所需最少租金。 数据输入由文件input.txt提供输入数据。文件第1行中有1个正整数n(n=200),表示有n个游艇出租站。接下来n-1行是r(i,j),1ijn。 结果输出程序运行结束时,将计算出从游艇出租站1到游艇出租站n所需最少租金输出到文件output.txt中。输入文件示例输出文件示例input.txtoutput.txt35 15712 实现提醒 建立递归关系,然后根据递归关系写出算法。(3)

18、根据指定格式书写试验汇报,试验汇报清楚,但不赘述,字体最大为四号。在试验结束一周内上交试验汇报。5.试验基础步骤(4) 选定试验题目,仔细阅读试验要求,设计好输入输出,根据分治法思想构思算法,选择适宜存放结构实现应用操作。(5) 设计结果应在Visual C+ 试验环境下实现并进行调试。(6) 试验要有具体测试统计,包含多种可能测试数据。实 验 报 告课程名称:算法设计和分析班级: 软件1304试验成绩:试验名称:动态计划学号:4726批阅老师签字:试验编号:试验二姓名:赵航试验日期: 年 1 月 5 日指导老师:张莉组号:试验时间: 时 分 时 分一、试验目标熟练掌握动态计划思想及教材中相关

19、经典算法。掌握用动态计划解题基础步骤,能够用动态计划处理部分问题。二、试验内容和试验步骤找零钱问题(难度系数为3) 问题描述设有n种不一样面值硬币,各硬币面值存于数组T1:n中。现要用这些面值硬币来找钱,能够实用多种面值硬币个数不限。当只用硬币面值T1,T2,Ti时,可找出钱数j最少硬币个数记为C(i,j)。若只用这些硬币面值,找不出钱数j时,记C(i,j)=。 编程任务 设计一个动态计划算法,对1jL,计算出全部C( n,j )。算法中只许可实用一个长度为L数组。用L和n作为变量来表示算法计算时间复杂性 数据输入由文件input.txt提供输入数据。文件第1行中有1个正整数n(n=13),表

20、示有n种硬币可选。接下来一行是每种硬币面值。由用户输入待找钱数j。 结果输出 程序运行结束时,将计算出所需最少硬币个数输出到文件output.txt中。输入文件示例输出文件示例input.txtoutput.txt31 2 593 实现提醒 首先要建立递归关系,并将分析过程写在汇报中。三、试验环境操作系统、调试软件名称、版本号,上机地点,机器台号四、问题分析(1) 分析要处理问题,给出你思绪,能够借助图表等辅助表示。问题为找零钱,则应该采取递归算法处理问题,一个一个硬币往上加(2) 依据分析建立正确递归关系c(i, j)表示从第1个到第i个硬币可选,要找钱数是j,则出口是(3) 分析利用你想法

21、处理该问题可能会有怎样时空复杂度。O(n平方)(4) 其它(你认为需要在此说明)五、问题处理(1) 依据对问题分析,写出处理措施。采取递归算法处理问题,一个一个硬币往上加(2) 描述你在进行实现时,关键函数或操作内部关键算法;分析这个算法时、空复杂度,并说明你设计巧妙之处,如有创新,将其清楚表述。 int changeCoins(int *T, int n, int v) sort(T,T+n); int *c=new int*n; for(int m=0;mn;m+) cm=new intv+1; for(int i=0;i=v;i+) if(i%T0=0) c0i=i/T0; else c

22、0i=INT_MAX; for(int j=1;jn;j+) for(int k=0;k=v;k+) if(kTj) cjk=cj-1k; else cjk=cj-1k0,其价值为vi0,背包容量为c。问应怎样选择装入背包中物品,使得装入背包中物品总价值最大? 编程任务 利用回溯法试设计一个算法求出0-1背包问题解,也就是求出一个解向量i (i = 0 或,i = 0表示物体不放入背包,i 1表示把物体放入背包),使得尽可能多价值装入背包。 数据输入由文件input.txt提供输入数据n,c,及每个物品重量w 和价值v 。 结果输出 程序运行结束时,将最优解输出到文件output.txt中。输入文件示例输出文件示例input.txtoutput.txt452 1 3 212 10 20 151 1 0 15.试验基础步骤(1) 选定试验题目,仔细阅读试验要求,设计好输入输出,根据回溯思想构思算法,选择适宜存放结构实现应用操作。(2) 设计结果应在Visual C+ 试验环境下实现并进行调试。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服