- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机算法设计与分析练习题
最大子段和问题:给定整数序列 ,求该序列形如的子
段和的最大值:
一个简单算法如下:
int Maxsum(int n,int a,int besti,int bestj)
{
int sum = 0;
for(int i=1;i=n;i++){
int suma = 0;
for(int j=i;j=n;j++){
suma + = a[j];
if(suma sum){
sum = suma;
besti = i;
bestj = j;
}
}
}
return sum;
}
试分析该算法的时间复杂性。
试用分治算法解最大子段和问题,并分析算法的时间复杂性。
试说明最大子段和问题具有最优子结构性质,并设计一个动态规划算法解最大子段和问题。分析算法的时间复杂度。
二.设是个互不相同的元素,每个元素有一个正实数权值,且满足。个元素的带权的中位数是满足下面不等式的元素:
(1)
1). 证明的(不带权的)中位数是带权 ( )的带权中位数(不带权的中位数是指按照大小排在中间位置的数,如果有两个,则取小者)。
2). 说明如何通过排序,在最坏情况下用时间求出个元素的带权中位数。
3). 说明如何利用一个线性时间选择算法,在最坏情况下用时间求出个元素的带权中位数。
4). 邮局位置问题是:已知个点以及与它们相联系的权,要求确定一点(未必是输入的点),使和式达到最小,其中表示与之间的距离。试论证带权的中位数是一维邮局问题的最优解,此时。
三.设是准备存放到长为L的磁带上的n个程序,程序需要的带长为。设,要求选取一个能放在带上的程序的最大子集合(即其中含有最多个数的程序)。构造的一种贪心策略是按的非降次序将程序计入集合。
1). 证明这一策略总能找到最大子集,使得。
2). 设是使用上述贪心算法得到的子集合,磁带的利用率可以小到何种程度?
3). 试说明1)中提到的设计策略不一定得到使取最大值的子集合。
电路布线问题:在一块电路板的上、下两段分别有个接线柱,如下
图。根据电路设计,要求用导线将上端接线柱与下端接线柱相连,
导线称为电路板上的第条连线。对于任何连线相交的充分必要条件是。在制作电路板时,要求将这条连线分布到若干个绝缘层上,使得在同一层上的连线不相交。电路布线问题就是要确定将哪些连线安排在第一层上,使得该层上有尽可能多的连线。该问题等价于确定布线集的最大不相交子集。
如果记,的最大不相交子集为,试证明电路布线问题具有最优子结构性质。构造一个动态规划算法解电路布线问题(写出算法的基本步骤即可),并说明你的算法的时间复杂度。
给定件物品和一个背包,物品的重量是,体积是,价值是;
背包的容量为,容积为。一件物品只能整个放进背包中或不放进背包中,也不允许重复放入。试设计一个求解此问题的算法,并计算其时间复杂度。
设计一个时间的算法,找出个数组成的序列的最长单调递增子
序列。
字符出现的频率恰好是前8个Fibonacci数,它们的Huffman编码是什么?将结果推广到个字符的频率恰好是前个Fibonacci数的情形。Fibonacci数的定义为:。
(双机调度问题)用两台处理机A和B处理个作业。设第个作业交给机器A处理时所需要的时间是,若由机器B来处理,则所需要的时间是。现在要求每个作业只能由一台机器处理,每台机器都不能同时处理两个作业。设计一个动态规划算法,使得这两台机器处理完这个作业的时间最短(从任何一台机器开工到最后一台机器停工的总的时间)。以下面的例子说明你的算法:
考虑下面特殊的整数线性规划问题
试设计一个解此问题的动态规划算法,并分析算法的时间复杂度。
考虑下列问题
在一个由元素组成的表中,出现次数最多的元素称为众数。试写出一个
求众数的算法,并分析其时间复杂性。
主元素问题:数组中的元素称为该数组的主元素,如果该数组
中有多于一半的元素等于,即。主元素问题是确定已知数组中是否存在主元素。设计一个线性时间算法求解主元素问题。
分派问题一般陈述为:给个人分派件工作,把工作分派给第个人的成本为。设计一个回溯算法,在给每个人分派一件不同工作的情况下,使得总成本最小。
已知一个无向连通图用它的邻接矩阵表示,试设计一个回溯算法HamiltonCycle,判定该图是否有Hanmilton圈,如果有将所有不同的Hanmilton圈都打印出来。
设和,使用求定和子集问题的回溯算法找出中所有和数为的子集,并画出所生成的部分状态空间树。
画出优先队列式算法对于下列0/1背包问题实例所生成的部分状
您可能关注的文档
最近下载
- TBNCY002-2023 西双版纳红茶 晒红茶.pdf VIP
- 机关单位人力资源管理中存在的问题及解决对策.docx VIP
- 2025年中级(四级)营销员职业技能鉴定《理论知识》真题卷(后附答案及解析).pdf VIP
- 大数据概论教学课件.pptx VIP
- 西双版纳红茶 晒红茶.docx VIP
- 室内装修全工程施工方案(3篇).docx VIP
- 2025年卫生事业单位招聘考试(中医学基础知识)历年参考题库含答案详解(5卷).docx VIP
- 50个广告分析.doc VIP
- GB32030-2022 潜水电泵能效限定值及能效等级 (2).pdf VIP
- (语文)福州时代中学2020级初一新生入学检测.pdf VIP
文档评论(0)