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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

算法分析课后习题解答文档格式.doc

1、 Gray码序列的后4个元素(23=8),分别为:011,111,101,001是n=2时Gray码四个元素反向后加1,n=2时Gray码四个元素:即: 可以看出,Gray码可以用分治策略,递归实现,2n的Gray码可以用2n-1的Gray码构成。 算法描述: void Gray( type a,int n) char a; if (n=1) a0=0;a1=1; if (n1) Gray(a,n-1); int k=2n-1-1; /Gray码的个数,因为数组下标从0开始 int i=k; for (int x=k;x=0;x-) char y=ax; ax=y+0; ai+1=y+1; i

2、+; 3-7 给定由n个英文单词组成的一段文章,设由n 个单词组成的一段文章可以表示为 A1:n,它的“漂亮打印”方案记为B1:n,构成该最优解的最小空格数(最优值)记为m1n(1) 分析最优解的结构:A1:n的最优解B1:n,必然在第k个单词处断开,那么A1:k是“漂亮打印”,并且Ak+1:n也是“漂亮打印”。故m1n最小时有m1n=m1k+mk+1n ,m1k是A1:k的最小值,mk+1n是Ak+1:n的最小值。因此,原问题的最优解包含其子问题的最优解,具有最优子结构性质。(2) 建立递归关系:第一行,row=1,最漂亮的打印字符数 最小空格数 第二行,row=2,最漂亮的打印字符数最小空

3、格数那么,设:sum=i1+k2+in+n 为文章中字符的总长度,其中i1,i2,in分别为n个单词的长度,n为单词之间的空格数。 M是一行可以输出的字符数 该文章可能输出的行数约为:sum/M+1 (由于最后一行除外,故可能需处理的行数为sum/M行。第sum/M行时,row=sum/M最小空格数 1. 当i=j时,Ai:i=Ai,mij=0,表示一个单词,没有空格。2. 当ij时,利用最优子结构性质计算mij若Ai:j的最优解在Ak和Ak+1处断开,i=kj,则mij=minmik+mk+1j,此时,k只有j-i中可能,k是使mij达到最小的那个位置。从而mij可以递归地定义为:mij=

4、/上面两个式子mij给出了最优值,即Ai:j的最小空格数若将对应于mij的断开位置k记为sij,在计算出最优值mij后,可递归地由sij构造出相应的最优解(3) 计算最优值算法: void f(int n, int *m, int *s, int sum, int M) for(int i=1;i=n;i+) mij=0; for(int row=1;row=sum/M;row+) i=1; for (int r=2;rr+) j=i+r-1; mij=row*M-j+row-(i1+i2+ik) if (mij0) break; sij=j; for (int k=i+1;kj);k+) t

5、=mik+mk+1j; if (tmij) mij=t;sij=k; ;x=j-1;(4) 构造最优解算法描述:void T(int *B, int *s, int x) y=1; do by=s1x; x=by;y=y+1; while (x1) do printf(“%d,”,by); y-; while (y0) 4-26 求极差M=max-min解:该问题采用贪心选择算法解决。算法思想:求max的步骤:(1)对黑板上的n个正数从小到大排序(2)取最小的两个数,进行a*b+1运算,将结果插入数列,再从小到大排序。(3)重复步骤(2),直到黑板上剩一个数为止,该数为最大值max。求min的

6、步骤:(1)对黑板上的n个正数从大到小排序(2)取最大的两个数,进行a*b+1运算,将结果插入数列,再从大到小排序。(3)重复步骤(2),直到黑板上剩一个数为止,该数为最大值min。Void max-min(int n,int max,int min, type *x,type *y) MinHeapMinHeapNodex(1000); MaxHeapMaxHeapNodey(1000); While (true) MinHeapNodex; MaxHeapNodey; a=x.DeleteMin(x); b=x.DeleteMin(x); Max=a*b+1 x.insert(max);

7、c=y.DeleteMin(y); d=y.DeleteMin(y); Min=c*d+1 y.insert(min); catch(outofBounds) break; M=a-c5-10 最小重量机该问题用回溯法求解。1 问题的解空间:部件:n个 1=I=n, 供应商:m个 1= j=mwij:是从供应商j处构得的部件I的重量。Cij:是从供应商j处构得的部件I的价格。当(C11+C12+Cnm)C时,求最小的(W11+W12+Wnm)假设n=4 m=2 时,该问题的解空间树如下:该树为n层的m叉树。2 回溯法的基本思想:按深度优先的方式搜索整个解空间树。3 求约束函数和限界函数(1)

8、约束函数:若大于总价格C,则该结点不可能有解,可剪去以这个结点为根的子树。Constraint(c) :计算(C11+C12+Cnm)0 ) if ( ccbestc) bestc=c; if ( bestcc ) if ( cwbestw ) bestw=cw; return; for ( j=1 ; j=m; j+) if ( cc+cIjc ) cc+=cIj; weight-cost(I+1); cc- =cIj; int n, /部件数 m, /供应商树type *w, /是从供应商j处构得的部件I的重量。type *c, /是从供应商j处构得的部件I的价格。 c, /总价格 cc, /当前总价格 cw, /当前总重量 bestc, /当前最优价格 bestw; /当前最优重量main()n=4; m=2; c=1000; cc=0; cw=0; bestc=0; bestw=32767; weight-cost(1);

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

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