算法设计题目教案资料Word文件下载.docx
《算法设计题目教案资料Word文件下载.docx》由会员分享,可在线阅读,更多相关《算法设计题目教案资料Word文件下载.docx(9页珍藏版)》请在冰豆网上搜索。
n-1]。
设计一个实现上述策略的合并排序算法,并分析算法的计算复杂性。
4、合并排序算法
对拨给元素存储于数组和存储于链表中的2种情形,写出合并排序算法。
5、非增序快速排序算法
如何修改QuickSort才能使其将输入元素按非增序排序?
第三章
1、整数线性规划问题
考虑下面的整数线性规划问题
试设计一个解此问题的动态规划算法,并分析算法的计算复杂性。
2、Ackermann函数
Ackermann函数A(m,n)可递归地定义如下:
A(m,n)=
试设计一个计算A(m,n)的动态规划算法,该算法只占用O(m)空间。
3、独立任务最优调试问题
问题描述:
用2台机A和B处理n个作业。
设第i个作业交给机器A处理时需要时间ai,若由机器B来处理,则需要时间bi。
由于各作业的选战和机器的性能关系,很可能对于某些i,有ai≥bi,而对于某些j,j≠i,有ai<
bj。
既不能将一个作业分开由2台机器处理,也没有一台机器能同时处理2个作业。
设计一个动态规划算法,使得这2台机器处理完这n个作业的时间最短(从任何一台机器开工到最后一台机器停工的总时间)。
研究一个实例:
(a1,a2,a3,a4,a5,a6)=(2,5,7,10,5,2);
(b1,b2,b3,b4,b5,b6)=(3,8,4,11,3,4)。
算法设计:
对于给定的2台处理机A和B处理n个作业,找出一个最优调试方案,使2台机器焉得完这n个作业的时间最短。
数据输入:
由文件input.txt提供输入数据。
文件的第1行是1个正整数n,表示要处理n个作业。
在接下来的2行中,每行有n个正整数,分别表示处理机A和处理机B处理第i个作业需要的处理时间。
结果输出:
将计算出的最短处理时间输出到文件output.txt。
输入文件示例输出文件示例
input.txtoutput.txt
615
2571052
3841134
4、三角形问题
给定一个由n行数字组成的数字三角形,如下图所示。
试设计一个算法,计算出从三角形的顶到底的一条路径,使该路径经过的数字总和最大。
7
38
810
2744
45265
编程任务:
对于给定的由n行数字组成的数字三角形,编程计算从三角形的顶到底的路径经过的数字和的最大值。
文件的第1行是数字三角形的行数n,1≤n≤100。
接下来n行是数字三角形各行中的数字。
所有数字在0~99之间。
程序运行结束时,将计算结果输出到文件output.txt中。
文件第1行中的数是计算出的最大值。
输入文件示例输出文件示例
Input.txtoutput.txt
530
7
38
810
2744
45265
5、租用游艇问题
长江游艇俱乐部在长江上设置了n个游艇出租站1,2,……,n。
游客可在游艇站租用游艇,并在下游的任何一个游艇站归还游艇。
游艇站i到游艇出租站j之间的租金为r(i,j),1≤i<
j≤n。
试设计一个算法,计算出从游艇出租站1到游艇出租站n所需的最少租金。
对于给定的游艇出租站i到游艇出租站j之间的租金为r(i,j),1≤i<
j≤n,编程计算从游艇出租站1到游艇出租站n所需的最少租金。
文件的第1行中有1个正整数n(n≤200),表示有n个游艇出租站。
接下来的n-1行是r(i,j),1≤i<
程序运行结束时,将计算出的从游艇出租站1到游艇出租站n所需的最少租金输出到文件output.txt中。
输入文件示例输出文件示例
input.txtoutput.txt
312
515
7
第四章
1、删数问题
给定n位正整数a,去掉其中任意k≤n个数字后,剩下的数字按原次序排列组成一个新的正整数。
对于给定的n位正整数a和正整数k,设计一个算法找出剩下数字组成的新数最小的删数方案。
对于给定的正整数a,编程计算删去k个数字后得到的最小数。
文件的第1行是1个正整数a。
第2行是正整数k。
程序运行结束时,将计算出的最小数输出到文件output.txt。
输入文件示例输出文件示例
Input.txtoutput.txt
17854313
4
2、套汇问题
套汇是指利用货币兑换率的差异将一个单位的某种货币转换为大于一个单位的同种货币。
例如,嘉定1美元可以买0.7英镑,1英镑可以买9.5法郎,且1法郎可以买到0.16美元。
通过货币兑换,一个商人可以从1美元开始买入,得到0.79.50.16=1.064美元,从而获得6.4%的利润。
给定n种货币c1,c2,…,cn的有关兑换率,试设计一个有效算法,用以确定是否存在套汇的可能性。
由文件input,txt提供输入数据。
文件含多个测试数据项,每个测试数据项的第1行中只有个整数n(1≤n≤30),表示货币总数。
其后n行给出n种货币的名称。
接下来的一行中有1个整数m,表示有m种不同的货币兑换率,其后m行给出m种不同的货币兑换率,每行有3个数据项ci,rij和cj,表示货币ci和cj的兑换率为rij。
文件最后以数字0结束。
程序运行结束时,对每个测试数据项j,如果存在套汇的可能性则输出“casejyes”,否则输出“casejno”。
所有结果输出到文件output.txt。
输入文件示例输出文件示例
Input.txtoutput.txt
3case1yes
USDollarcase2no
BritishPound
FrenchFranc
3
USDollar0.5BritishPound
BritishPound10.0FrenchFranc
FrenchFranc0.21USDollar
0
3、磁带最大利用率问题
设有n个程序{1,2,…,n}要存放在长度为L的磁带上。
程序i存放在磁带上的长度是li,1≤i≤n。
程序存储问题要求确定这n个程序在磁带上的一个存储方案,使得能够在磁带上存储尽可能多的程序。
在保证存储最多程序的前提下还要求磁带的利用率达到最大。
对于给定的n个程序放在磁带上的长度,编程计算磁带上最多可以存储的程序数和占用磁带的长度。
由文件input.txt给出输入数据。
第1行是2个正整数,分别表示文件个数n和磁带的长度L。
家下来的1行中,有n个正整数,表示程序存放在磁带上的长度。
将编程计算出的最多可以存储的程序数和占用磁带上的每个程序的长度输出到文件output.txt。
第1行输出最多可以存储的程序数和占用磁带的长度;
第2行输出存放在磁带上的每个程序的长度。
输入文件示例输出文件示例
input.txtoutput.txt
950549
2313880202122232313823
4、多元Huffman编码问题
在一个操场的四周摆放着n堆石子。
现要将石子有次序地合并成一堆。
规定每次至少选2堆最多选k堆石子合并成新的一堆,合并的费用为新的一堆的石子数。
试设计一个算法,计算出将n堆石子合并成一堆的最大总费用和最小总费用。
对于给定的n堆石子,编程计算合并成一堆的最大总费用和最小总费用。
文件的第1行有2个正整数n和k,表示有n堆石子,每次至少选2堆最多选k堆石子合并。
第2行有n个数,分别表示每堆石子的个数。
程序运行结束时,将计算的最大总费用和最小总费用输出到output.txt。
73593199
451312169522
5、最优分解问题
设n是一个正整数。
现在要求将n分解为若干互不相同的自然数的和,且使这些自然数的乘积最大。
编程任务:
对于给定的正整数n,编程计算最优分解方案。
文件的第1行是正整数n。
程序运行结束时,将计算出的最大乘积输出到文件output.txt。
input.txtoutput.txt
1030
第五章
1、最小重量机器设计问题
设某一机器由n个部件组成,每一种部件都可以从m个不同的供应商处购得。
高wij是从供应商j处购得的部件i的重量,cij是相应的价格。
试设计一个算法,给出总价格不超过c的最小重量机器设计。
对于给定的机器部件重量和机器部件价格,编程计算总价格不超过d的最小重量机器设计。
第一行有3个正整数n,m和d。
接正业的2n行,每行n个数。
前n行是c,后n行是w。
将计算出的最小重量,以及每个部件的供应商输出到文件output.txt。
3344
123131
321
222
2、运动员最佳配对问题
羽毛球有男女运动员各n人。
给定2个n╳n矩阵P和Q。
P[i][j]是男运动员i和女运动员j配对组成混合双打的男运动员竞赛优势;
Q[i][j]是女运动员i和男运动员j配合的女运动员竞赛优势。
由于技术配合和心理状态等各种因素影响,P[i][j]不一定等于Q[j][i]。
男运动员i和女运动员j配对组成混合双打的男女双方竞赛优势为P[i][j]*Q[j][i]。
设计一个算法,计算男女运动员最佳配对法,使各组男女双方竞赛优势的总和达到最大。
设计一个算法,对于给定的男女运动员竞赛优势,计算男女运动员最佳配对法,使各组男女双方竞