ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:19.38KB ,
资源ID:29429603      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

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

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《算法设计与分析》上机指导.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《算法设计与分析》上机指导.docx

1、算法设计与分析上机指导算法设计与分析上机指导(05软工)上机常见错误与对策1上机指导1 2上机指导2 5上机指导3 8计算机与信息学院 温敬和wenjinghe上机常见错误与对策创建工程时,选错工程类型(应选择倒数第三个“Win32 Console Application”);创建源程序文件时,选错文件类型。要修改程序,应打开工作区(dsw)文件,而不是源程序(cpp)文件。在VC+系统中,程序是用西文字符(ASCII码)来描述的,汉字只能出现在字符串常数或注释中。 请注意汉字双引号和西文双引号的区别 请注意汉字单引号和西文单引号的区别 请注意汉字分号和西文分号的区别 请注意汉字园括号和西文园

2、括号的区别在一般情况下,一个工作区只有一个工程,一个工程对应一个程序。当一个程序完成,编制下一个程序时,一定要新建工程(不要修改系统默认设置“创建新工作区”)。最简单的方法是:退出VC+集成环境后,重新进入VC+。当系统出现不可解释的现象时,此时应选择“编译”“重建全部”,然后执行。若还不行,则重新启动计算机,利用硬盘保护卡功能恢复系统。操作步骤: 重新启动计算机后,出现菜单画面。 选中“Windows 2000 Professional”。 在按住“Ctrl”键的同时,按“R”健。 对于系统提问,按“Y”键回答。源程序若有错误,编译系统会在输出区显示错误信息。由于识别错误能力有限,指示的错误

3、信息有时不一定完全正确,但至少提供了线索。双击错误信息条目,指针会自动指向出错语句,编程者可逐字符查找错误。算法设计与分析上机指导1(每个)程序书写要求/ */ * 工 程 名:103.dsp */ * 程 序 名:103.cpp */ * 主要功能:自底向上合并排序法 */ * 学号姓名:57053001温敬和 */ * 编制时间:2007年7月13日 */ *#include /#include void main() /using namespace std; /int main() / / / return 0; /实习内容习题一(工程名为101、源程序名为101)选择排序法的伪代码描

4、述如下:算法1.4 SelectionSort(参见Page 8)输入:数组A1.n输出:按升序排列的数组A1.n1. for i1 to n-12. Selection(i) 3. end for 过程Selection(i)1. ki2. for ji+1 to n3. if Aj0) and (Ajx)4. Aj+1Aj 5. jj-16. end while 7. Aj+1x用C语言实现上述算法并上机通过。选做题:用递归方法(归纳法)实现插入排序法。习题三(工程名为103、源程序名为103)自底向上合并排序法的伪代码描述如下:算法1.6 BottomUpSort(Page 10)输入:

5、n个元素的数组A1.n输出:按升序排列的数组A1.n1. t12. while tn3. st : t2s : i04. while i+tn5. Merge(A,i+1,i+s,i+t) /Merge(A,p,q,r)6. ii+t7. end while8. if i+ss表示剩余的元素个数大于被合并的子序列长度过程Merge(A1.m,p,q,r)1. comment:Bp.r是个辅助数组 /或B1.m2. sp : tq+1 : kp /s和t分别指向数组A二个子数组元素3. while (sq) and (tr) /k指向数组B当前空白元素位置4. if AsAt then BkAs

6、 : ss+15. else BkAt : tt+16. end if7. kk+1 /指向数组B下一个空白位置8. end while9. if s=q+1 then Bk.rAt.r /说明子数组Ap.q元素已处理完10. else Bk.rAs.q /否则t=r+1,说明子数组Aq+1.r已处理完。11. end if12. Ap.r Bp.r用C语言实现上述算法并上机通过。选做题:用递归方法(分治法)实现自底向上合并排序法。提交方式 首先建立个人目录,目录名为“学号姓名”,例 “57053001温敬和”。在目录“57053001温敬和”中,建立子目录 1(本次实习)。在目录“57053

7、001温敬和1”中,应具有如下文件: 101.cpp、101.exe、102.cpp、102.exe、103.cpp、103.exe算法设计与分析上机指导2(每个)程序书写要求/ */ * 工 程 名:103.dsp */ * 程 序 名:103.cpp */ * 主要功能:自底向上合并排序法 */ * 学号姓名:57053001温敬和 */ * 编制时间:2007年7月13日 */ *#include /#include void main() /using namespace std; /int main() / / / return 0; /实习内容习题一(工程名为201、源程序名为20

8、1)快速排序法的伪代码描述如下:算法6.6 QuickSort(参见Page 114)输入:有n个元素的数组A1.n输出:按升序排列的数组A1.n 1. QuickSort(A,1,n)过程QuickSort(A1.n,low,high)1. if lowx=Alow5. ii+16. if ij then 互换Ai和Aj7. end if8. end for9. if lowi then 互换Alow和Ai10. wi11. return w用C语言实现上述算法并上机通过。习题二(工程名为202、源程序名为202)解最长公共子序列问题的伪代码描述如下:算法 LCSRec(递归算法)输入:字符

9、串A和B,设A和B的长度分别为n和m。输出:A和B的最长公共子序列的长度 1. LCSRec(n,m)过程procedure LCSRec(i,j)1. if i=0 or j=0 then return 02. else3. if Ai=Bj then4. return LCSRec(i-1,j-1)+15. else6. return max(LCSRec(i,j-1),LCSRec(i-1,j)7. end if8. end if用C语言实现上述算法并上机通过。选做题:给出最长公共子序列问题的非递归算法(动态规划法),并上机通过。习题三(工程名为203、源程序名为203)解背包问题的伪代

10、码描述如下:算法7.4 Knapsack(参见Page 139)输入:背包容量C、物品体积集合 S = s1,s2,.,sn、物品价值集合V = v1,v2,.,vn输出:可装入背包物品的最大总价值1. for i0 to n Vi,00 /背包容量为02. for j0 to C V0,j0 /背包未装入任何物品3. for i1 to n4. for j1 to C5. if si j then /物品ui的体积si超过容量j,不装入。6. Vi,jVi-1,j /取上一次的计算结果7. else /物品ui的体积si不超过容量j,可装入。8. Vi,jmax(Vi-1,j,Vi-1,j-

11、si+vi)9. end if10. end for11. end for12. return Vn,C /返回最大总价值用C语言实现上述算法并上机通过。选做题1:如何修改算法Knapsack,使它只需要(C)空间,其中C是背包容量。选做题2:给出背包问题的非递归算法,并上机通过。提交方式 首先建立个人目录,目录名为“学号姓名”,例 “57053001温敬和”。在目录“57053001温敬和”中,建立子目录2(本次实习)。在目录“57053001温敬和2”中,应具有如下文件: 201.cpp、201.exe、202.cpp、202.exe、203.cpp、203.exe算法设计与分析上机指导3

12、(每个)程序书写要求/ */ * 工 程 名:103.dsp */ * 程 序 名:103.cpp */ * 主要功能:自底向上合并排序法 */ * 学号姓名:57053001温敬和 */ * 编制时间:2007年7月13日 */ *#include /#include void main() /using namespace std; /int main() / / / return 0; /实习内容习题一(工程名为301、源程序名为301)解最短路径问题的伪代码描述如下:算法 8.1(Page 147)输入:含权有向图G=(V,E)的邻接矩阵,约定结点1为源。输出:G中结点1到其它各结点的

13、最短路径长度1. X=1:Y=V-1:1=02. for y2 to n3. if y相邻于顶点1 then y=length1,y4. else y=5. end if6. end for7. for j1 to n-1 /Y中共有n-1个顶点8. 设yY且y为最小9. XXy:YY-y /将结点y由集合X移入集合Y10. for 每条边(y,w) 11. if wY and y+lenghy,ww then12. wy+lenghy,w13. end if14. end for15. end for用C语言实现上述算法并上机通过。习题二(工程名为302、源程序名为302)解图三着色问题的伪

14、代码描述如下:输入:无向图G=(V,E)输出:图的结点3着色向量c1.n,0cj 3(1jn)。1c1.n0 /c1.n为全局量2GraphColorRec(1) 过程GraphColorRec(k)1. for color1 to 32. ckcolor3. if c1.k为合法着色 then /部分解或解4. if kn then /部分解5. GraphColorRec(k+1) /进入下一个结点6. else /是解7. output c1.n and exit8. end if9. end if10. end for11. ck=0 /回溯前清0,即没有着任何颜色。用C语言实现上述算

15、法并上机通过。选做题1:给出图三着色问题的全部解。选做题2:给出图三着色问题的非递归算法,并上机通过。习题三(工程名为303、源程序名为303)解4皇后问题的伪代码描述如下:算法 4-QueenRec(递归解)输入:空输出:对应于4皇后问题的向量c1.4(全局量) 1. c1.40 2. advanced(1)过程advanced(k)1. for col1 to 4 /最多只有4列2. ckcol 3. if c是解 then /部分解或解 4. if k=4 then /解5. output c and exit 6. else /部分解 7. advanced(k+1) /移至下一行8. end if 9. end if 10. end for11. ck0 /返回前清0(回溯) 选做题1:给出4皇后问题的全部解。选做题2:给出4皇后问题的非递归算法,并上机通过。提交方式 首先建立个人目录,目录名为“学号姓名”,例 “57053001温敬和”。在目录“57053001温敬和”中,建立子目录3(本次实习)。在目录“57053001温敬和3”中,应具有如下文件: 301.cpp、301.exe、302.cpp、302.exe、303.cpp、303.exe

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1