2011算法设计与分析试题A
计算机算法试题(含答案)

计算机算法试题(含答案)算法设计与分析试卷一、填空题(20分,每空2分)1、算法的性质包括输入、输出、___、有限性。
2、动态规划算法的基本思想就将待求问题_____、先求解子问题,然后从这些子问题的解得到原问题的解。
3、设计动态规划算法的4个步骤:(1)找出____,并刻画其结构特征。
(2)_______。
(3)_______。
(4)根据计算最优值得到的信息,_______。
4、流水作业调度问题的johnson算法:(1)令N1=___,N2={i|ai>=bj};(2)将N1中作业依ai的___。
5、对于流水作业高度问题,必存在一个最优调度π,使得作业π(i)和π(i+1)满足Johnson不等式_____。
6、最优二叉搜索树即是___的二叉搜索树。
二、综合题(50分)1、当(a1,a2,a3,a4,a5,a6)=(-2,11,-4,13,-5,-2)时,最大子段和为∑ak(2<=k<=4)____(5分)2、由流水作业调度问题的最优子结构性质可知,T(N,0)=______(5分)3、最大子段和问题的简单算法(10分)int maxsum(int n,int *a,int & bestj){intsum=0;for (int i=1;i<=n;i++)for (int j=i;j<=n;j++)int thissum=0;for(int k=i;k<=j;k++)_____;if(thissum>sum){sum=thissum;______;bestj=j;}} return sum;}4、设计最优二叉搜索树问题的动态规划算法OptimalBinarysearchTree (15分)Void OptimalBinarysearchTree(int a,int n,int * * m, int* * w){for(int i=0;i<=n;i++) {w[i+1][i]=a[i]; m[i+1][i]=____;}for(int r=0;r<n;r++)< p="">for(int i=1;i<=n-r;i++){int j=i+r;w[i][j]=w[i][j-1]+a[j]+b[j];m[i][j]=______;s[i][j]=i;for(int k=i+1;k<=j;k++){int t=m[i][k-1]+m[k+1][j];if(_____) {m[i][j]=t; s[i][j]=k;}}m[i][j]=t; s[i][j]=k;}}5、设n=4, (a1,a2,a3,a4)=(3,4,8,10), (b1,b2,b3,b4)=(6,2,9,15) 用两种方法求4个作业的最优调度方案并计算其最优值(15分)三、简答题(30分)1、将所给定序列a[1:n]分为长度相等的两段a[1:n/2]和a[n/2+1:n],分别求出这两段的最大子段和,则a[1:n]的最大子段和有哪三种情形(10分)答:2、由0——1背包问题的最优子结构性质,可以对m(i,j)建立怎样的递归式 (10分)3、0——1背包求最优值的步骤分为哪几步(10分)参考答案:填空题:确定性分解成若干个子问题最优解的性质递归地定义最优值以自底向上的方式计算出最优值构造最优解 {i|ai<="" p="">依bi的非增序排序min{bπ(i),aπ(i+1)}≥min{bπ(i+1),aπ(i)}最小平均查找长度综合题:20 min{ai+T(N-{i},bi)}(1=<i<=n) 0="" besti="i" m[i+1][j]="" p="" t<m[i][j]<="" thissum+="a[k]">法一:min(ai,bj)<=min(aj,bi)因为 min(a1,b2)<=min(a2,b1)所以1→2 (先1后2)由 min(a1,b3)<=min(a3,b1)得1→3 (先1后3)同理可得:最后为1→3→4→2法二:johnson算法思想N1={1,3,4} N2={2}N11={1,3,4} N12={2}所以N11→N12得:1→3→4→2简答题:1 、(1)a[1:n]的最大子段和与a[1:n/2]的最大子段和相同。
算法设计与分析-习题参考答案

算法设计与分析基础习题1.15..证明等式gcd(m,n)=gcd(n,m mod n)对每一对正整数m,n都成立.Hint:根据除法的定义不难证明:●如果d整除u和v, 那么d一定能整除u±v;●如果d整除u,那么d也能够整除u的任何整数倍ku.对于任意一对正整数m,n,若d能整除m和n,那么d一定能整除n和r=m mod n=m-qn;显然,若d能整除n和r,也一定能整除m=r+qn和n。
数对(m,n)和(n,r)具有相同的公约数的有限非空集,其中也包括了最大公约数。
故gcd(m,n)=gcd(n,r)6.对于第一个数小于第二个数的一对数字,欧几里得算法将会如何处理?该算法在处理这种输入的过程中,上述情况最多会发生几次?Hint:对于任何形如0<=m<n的一对数字,Euclid算法在第一次叠代时交换m和n, 即gcd(m,n)=gcd(n,m)并且这种交换处理只发生一次.7.a.对于所有1≤m,n≤10的输入, Euclid算法最少要做几次除法?(1次)b. 对于所有1≤m,n≤10的输入, Euclid算法最多要做几次除法?(5次)gcd(5,8)习题1.21.(农夫过河)P—农夫W—狼G—山羊C—白菜2.(过桥问题)1,2,5,10---分别代表4个人, f—手电筒4. 对于任意实系数a,b,c, 某个算法能求方程ax^2+bx+c=0的实根,写出上述算法的伪代码(可以假设sqrt(x)是求平方根的函数)算法Quadratic(a,b,c)//求方程ax^2+bx+c=0的实根的算法//输入:实系数a,b,c//输出:实根或者无解信息If a≠0D←b*b-4*a*cIf D>0temp←2*ax1←(-b+sqrt(D))/tempx2←(-b-sqrt(D))/tempreturn x1,x2else if D=0 return –b/(2*a)else return “no real roots”else //a=0if b≠0 return –c/belse //a=b=0if c=0 return “no real numbers”else return “no real roots”5.描述将十进制整数表达为二进制整数的标准算法a.用文字描述b.用伪代码描述解答:a.将十进制整数转换为二进制整数的算法输入:一个正整数n输出:正整数n相应的二进制数第一步:用n除以2,余数赋给Ki(i=0,1,2...),商赋给n第二步:如果n=0,则到第三步,否则重复第一步第三步:将Ki按照i从高到低的顺序输出b.伪代码算法DectoBin(n)//将十进制整数n转换为二进制整数的算法//输入:正整数n//输出:该正整数相应的二进制数,该数存放于数组Bin[1...n]中i=1while n!=0 do {Bin[i]=n%2;n=(int)n/2;i++;}while i!=0 do{print Bin[i];i--;}9.考虑下面这个算法,它求的是数组中大小相差最小的两个元素的差.(算法略) 对这个算法做尽可能多的改进.算法MinDistance(A[0..n-1])//输入:数组A[0..n-1]//输出:the smallest distance d between two of its elements习题1.31.考虑这样一个排序算法,该算法对于待排序的数组中的每一个元素,计算比它小的元素个数,然后利用这个信息,将各个元素放到有序数组的相应位置上去.a.应用该算法对列表‖60,35,81,98,14,47‖排序b.该算法稳定吗?c.该算法在位吗?解:a. 该算法对列表‖60,35,81,98,14,47‖排序的过程如下所示:b.该算法不稳定.比如对列表‖2,2*‖排序c.该算法不在位.额外空间for S and Count[] 4.(古老的七桥问题)习题1.41.请分别描述一下应该如何实现下列对数组的操作,使得操作时间不依赖数组的长度. a.删除数组的第i 个元素(1<=i<=n)b.删除有序数组的第i 个元素(依然有序) hints:a. Replace the i th element with the last element and decrease the array size of 1b. Replace the ith element with a special symbol that cannot be a value of the array ’s element(e.g., 0 for an array of positive numbers ) to mark the i th position is empty. (―lazy deletion ‖)第2章 习题2.17.对下列断言进行证明:(如果是错误的,请举例) a. 如果t(n )∈O(g(n),则g(n)∈Ω(t(n)) b.α>0时,Θ(αg(n))= Θ(g(n)) 解:a. 这个断言是正确的。
算法设计与分析 期末试卷 A卷(完整含答案)

4
0 0 0 0 0 0 0 a 1 b 1 c 1 d 1 e 1 f 1
装 订 线
考试科目: 考试时间: 年级专业 三(16) 四(24)
算法设计与分析 120 分钟
姓名 一(20) 二(25)
五(15)
总分
得分 评阅人
说明: (1)请勿漏填学号姓名等信息。本试卷仅一份,请将答案直接填于试卷上,莫将试卷当草稿,想好了再 写,若空白的位置不够,标注清楚后可以写反面; (2)答题时,对算法的描述可以采用文字、公式、图、伪代码、实例说明等混合形式。请注意表达应条 理清晰,思想简洁,勿长篇累述不得要领。
后续n-i个元素比较并判定是否逐个插入堆, 最坏情况为 O(( n i ) log i ) , 最后对i个堆中元素逐个输出堆顶 元素需要 O(i log i ) ,合计后略去低阶项为 O(n log i ) 。
得分 二、简答题(共5小题,每题5分,共25分) 1、请将下列函数的阶按上升顺序排列。 (5分)
算法 1 Loop1(n) s=0; for(i=1;i<=n;i++) for(j=1;j<=i;j++) s=s+i*j;
算法1:O(
);
算法 2 Loop2(n) s=0; for(i=1;i<=n2;i++) for(j=1;j<=n;j++) s=s+i*j;
算法2:O(
);
1
算法 3 Loop3(n) s=0; for(i=1;i<=n2;i++) for(j=1;j<=i;j++) s=s+i*j;
设计与算法分析考试题库

设计与算法分析考试题库一、选择题(每题2分,共20分)1. 在算法分析中,时间复杂度用来衡量算法的什么?A. 可读性B. 执行速度C. 资源消耗D. 可维护性2. 以下哪个排序算法的时间复杂度为O(n^2)?A. 快速排序B. 归并排序C. 选择排序D. 堆排序3. 动态规划与分治算法的主要区别是什么?A. 递归使用B. 子问题重叠C. 问题分解方式D. 算法效率4. 递归算法的基本原理是什么?A. 循环调用B. 重复执行C. 问题分解D. 迭代求解5. 在图算法中,深度优先搜索(DFS)和广度优先搜索(BFS)的主要区别在于?A. 搜索顺序B. 搜索深度C. 使用的数据结构D. 搜索效率6. 哈希表的冲突解决方法中,开放定址法和链地址法的主要区别是什么?A. 存储方式B. 冲突处理机制C. 访问速度D. 空间利用率7. 贪心算法在解决优化问题时,其选择的策略是?A. 随机选择B. 局部最优C. 全局最优D. 动态选择8. 以下哪个算法是解决最近公共祖先问题的?A. 二分查找B. 欧拉路径C. 弗洛伊德算法D. 树的深度优先搜索9. 算法的时间复杂度为O(1)表示该算法的执行时间与输入规模的大小?A. 成正比B. 成反比C. 无关D. 指数关系10. 在大O符号中,O(1)、O(log n)、O(n)、O(n log n)、O(n^2)、O(2^n),按算法效率从高到低排序正确的是?A. O(1), O(log n), O(n), O(n log n), O(n^2), O(2^n)B. O(2^n), O(n^2), O(n log n), O(n), O(log n), O(1)C. O(1), O(log n), O(n log n), O(n), O(n^2), O(2^n)D. O(1), O(n), O(log n), O(n log n), O(n^2), O(2^n)二、简答题(每题10分,共30分)11. 简述二分查找算法的基本思想及其时间复杂度。
算法设计与分析 期末试卷 A卷 完整含答案

装订线华南农业大学期末考试试卷(A卷) 2012学年第1学期 考试科目:算法设计与分析考试类型:(闭卷)考试 考试时间:120 分钟学号姓名年级专业题号一(20) 二(25) 三(16) 四(24) 五(15) 总分得分评阅人说明:(1)请勿漏填学号姓名等信息。
本试卷仅一份,请将答案直接填于试卷上,莫将试卷当草稿,想好了再写,若空白的位置不够,标注清楚后可以写反面;(2)答题时,对算法的描述可以采用文字、公式、图、伪代码、实例说明等混合形式。
请注意表达应条理清晰,思想简洁,勿长篇累述不得要领。
得分一、填空题(1~3题每空1分,第4题每空2分,共20分,结果直接填于划线处)1、化简下面f(n)函数的渐进上界表达式。
(5分)nnnf32/)(21,则____)(_________))((1OnfO322)(nnf,则____)(_________))((2OnfO33log)(nnf ,则____)(_________))((3OnfO2log42)(nnf ,则____)(_________))((4OnfOnnf3log)(5,则____)(_________))((5OnfO参考解答:)3())((1nOnfO ;)2())((2nOnfO ;)(log))((3nOnfO ;)())((24nOnfO ;)())((5nOnfO 。
2、用大O符号和关于n的渐进函数来表征如下算法Loop1至Loop3的运行时间。
(3分)算法1:O( );算法2:O( );12算法3:O( )参考解答:算法1:)(2n O ;算法2:)(3n O ;算法3:)(4n O 。
3、假设算法A 的计算时间为n n T 2)( ,现在一慢一快的两台计算机上测试算法A ,为解决规模n 的问题慢机运行算法A 花费t 秒,而另一台快机速度是慢机的256倍,则在快机上算法A 同样运行t 秒能解决n1规模,则n1和n 的关系为:n1= ;若算法B 的计算时间为2)(n n T ,其余条件不变,则n1= 。
算法设计与分析考试题及答案_百度文库

____________,先求解___________,然后从这些____________的 解得到原问题的解。
7.以深度优先方式系统搜索问题解的算法称为_____________。 8.0-1 背包问题的回溯算法所需的计算时间为_____________,用动态
个基 的度量,是评价算法优劣的重要依据。 4、 计算机的资源最重要的是 7、 许多可以用贪心算法求解的问题一般具有 2 个重要的性质: 3、Hanoi 算法
Hanoi(n,a,b,c) if (n==1) 1 else { 2 ; 3 ; Hanoi(n-1,b, a, c); } ; 4、Dijkstra
算法求单源最短路径 d[u]:s 到 u 的距离 p[u]:记录前一节点信息 Init-singleInit-single-source(G,s) for
each vertex v∈V[G] do { d[v]=∞; 1 } d[s]=0 Relax(u,v,w) if d[v]>d[u]+w(u,v) then
;c++) 2 ; ; if( t[r+1][c]>t[r+1][c+1]) ) 。 性质和 性 的选择。也就是说贪心算法并不从整体最优考 、
,它们规定了解决某一特定类型问题的 、 和 。 资源。因而,算法的复杂性有 和 。 2、 在进行问题的计算复杂性分析之前,首先必须建立求解问题所用的计算模型。3
规划算法所需的计算时间为____________。 9.动态规划算法的两个基本要素是___________和___________。
算法设计与分析历年期末试题整理_含答案_

《算法设计与分析》历年期末试题整理(含答案)(1)用计算机求解问题的步骤:1、问题分析2、数学模型建立3、算法设计与选择4、算法指标5、算法分析6、算法实现 7、程序调试 8、结果整理文档编制(2)算法定义:算法是指在解决问题时,按照某种机械步骤一定可以得到问题结果的处理过程(3)算法的三要素1、操作2、控制结构3、数据结构算法具有以下5 个属性:有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。
确定性:算法中每一条指令必须有确切的含义。
不存在二义性。
只有一个入口和一个出口可行性:一个算法是可行的就是算法描述的操作是可以通过已经实现的基本运算执行有限次来实现的。
输入:一个算法有零个或多个输入,这些输入取自于某个特定对象的集合。
输出:一个算法有一个或多个输出,这些输出同输入有着某些特定关系的量。
算法设计的质量指标:正确性:算法应满足具体问题的需求;可读性:算法应该好读,以有利于读者对程序的理解;健壮性:算法应具有容错处理,当输入为非法数据时,算法应对其作出反应,而不是产生莫名其妙的输出结果。
效率与存储量需求:效率指的是算法执行的时间;存储量需求指算法执行过程中所需要的最大存储空间。
一般这两者与问题的规模有关。
经常采用的算法主要有迭代法、分而治之法、贪婪法、动态规划法、回溯法、分支限界法迭代法也称“辗转法”,是一种不断用变量的旧值递推出新值的解决问题的方法。
利用迭代算法解决问题,需要做好以下三个方面的工作:一、确定迭代模型。
在可以用迭代算法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量。
二、建立迭代关系式。
所谓迭代关系式,指如何从变量的前一个值推出其下一个值的公式(或关系)。
迭代关系式的建立是解决迭代问题的关键,通常可以使用递推或倒推的方法来完成。
三、对迭代过程进行控制。
在什么时候结束迭代过程?这是编写迭代程序必须考虑的问题。
不能让迭代过程无休止地重复执行下去。
算法设计与分析a卷及答案

算法设计与分析试题A及答案一.填空题:(每题4分,共20分)1.算法是指(解决问题的)一种方法或一个过程,是(若干指令的)有穷序列。
2质。
3. 贪心选择性质是指所求问题的整体最优解可以通过一系列局部最优的选择来达到。
4.递归函数的两大基本要素是_递归方程和边界条件_ .5.在回溯法中,一个问题的解空间是指一个大的解决方案可以看作是由若干个小的决策组成。
很多时候它们构成一个决策序列。
解决一个问题的所有可能的决策序列构成该问题的解空间.二.简答题:(每题5分,共20分)1.简述分治法所能解决的问题一般应具有的特征。
1.)该问题的规模缩小到一定的程度就可以容易地解决;2.)该问题具有最优子结构性质;3.)利用该问题分解出的子问题的解可以合并为该问题的解;4.)该问题所分解出的各个子问题是相互独立的。
2.设有待安排的8个活动的开始时间和结束时间如下表。
请采用贪心算法给出活动安排序解:将待安排的8个活动的开始时间和结束时间按结束时间的非减序排列如下:用贪心算法给出活动安排序列:1,3,6,8。
贪心选择的意义是使剩余的可安排时间段极大化,以便安排尽可能多的相容活动。
3.请描述分治法的具体过程。
将原问题划分成k 个子问题。
对这k 个子问题分别求解。
如果子问题的规模仍然不够小,则再划分为k 个子问题,如此递归的进行下去,直到问题规模足够小,很容易求出其解为止。
将求出的小规模的问题的解合并为一个更大规模的问题的解,自底向上逐步求出原来问题的解。
4. Fibonacci 数列如下定义:10()11(1)(2)1n F n n F n F n n =⎧⎪==⎨⎪-+->⎩1、 请设计一个递归算法,计算F(n)。
2、 分析算法的时间复杂性。
解 1、int fibonacci(int n) { if (n <= 1) return 1;return fibonacci(n-1)+fibonacci(n-2); }2、T(n)=T(n-1)+T(n-2)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
共3页第3页
输入数据的第1行有2个正整数n和k,表示有n堆石子,每次至少选2堆最多选k堆石子合并。第2行有n个数,分别表示每堆石子的个数。 13 12 16 9 5 22
三.综合题(第一题5分,第二题15分,第三题15分,共35分)
1.一个人有一捆草,一只羊,一头老虎。他想把草、羊、老虎运过河。但是老虎要吃羊,羊要吃草。
他要羊不吃草,虎不羊。完整运过去。请问应怎样运?试写出完整的搬运步骤。
共3页第2页
山东理工大学《算法设计与分析》试卷纸
(A)卷10-11学年第二学期班级:姓名:学号:
…………………………………装……………………………订…………………………线………….………………………………
2.给定一序列试a1,a2,…,an,利用合并排序对序列按升序进行排序,编程实现。
山东理工大学《算法设计与分析》试卷纸
(A)卷10-11第二学期班级:姓名:学号:
…………………………………装……………………………订…………………………线………….………………………………
适用专业
09计科
考核性质
考试
闭卷
命题教师
石少俭
考试时间
100分钟
题号
一
二
三
四
五
六
七
八
九
十
十一
总分
得分
评阅人
复核人
(A)卷10-11学年第二学期班级:姓名:学号:
…………………………………装……………………………订…………………………线………….………………………………
3.用动态规划算法解0-1背包问题:n=5, w=[2,9,4,6,7], p =[6,10,12,8,13], c = 15。
4.在一个操场的四周摆放着n堆石子。现要将石子有次序地合并成一堆。规定每次至少选2堆最多选k堆石子合并成新的一堆,合并的费用为新的一堆的石子数。试设计一个算法,计算出将n堆石子合并成一堆的最大总费用和最小总费用。
二.实例题(每题10分,共40分)
1.给出一个赋权无向图如下,求顶点S到T的最短路(直接在图上用粗线画出即可)
6
6586
3775
ST
368
6
49
2.用快速排序算法对序列45,35,65,97,78,13,27进行排序。
(每一趟排序以第一个元素为数轴。要求每一趟排序有完整的过程。)
共3页第1页
山东理工大学《算法设计与分析》试卷纸
一.简答题(每题3分,共9分)
1.程序的时间复杂性和空间复杂性
2.回溯法与分支限界法的区别
3.写出3个NP完全问题
二.填空题(每空2分,共16分)
1.动态规划算法的基本要素是()、()。
2.贪心算法算法的基本要素是()、()。
3.概率算法有数值概率算法、舍伍德算法和()、()。
4.搜索算法常用的解空间树有()、()。