江西理工大学算法设计及分析期末复习题.docx
- 文档编号:544816
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:16
- 大小:23.50KB
江西理工大学算法设计及分析期末复习题.docx
《江西理工大学算法设计及分析期末复习题.docx》由会员分享,可在线阅读,更多相关《江西理工大学算法设计及分析期末复习题.docx(16页珍藏版)》请在冰豆网上搜索。
江西理工大学算法设计及分析期末复习题
说明:
2015年秋季考试编程题基本是复习题前面的编程题里面的几道,选择题都在复习题里面的选择题里面。
1、设计一个O(n的平方)时间的算法,找出由n个数组成的序列的最长单调递增子序列
intmain(){
intn;scanf("%d",&n);
inta[100];
for(inti=0;i scanf("%d",&a[i]); printf("%d\n",LISdyna(a,n));} intLISdyna(inta[],intn){ intb[100]={0};inti,j; b[0]=1; for(i=1;i intk=0;for(j=0;j if(a[j]<=a[i]&&k } intmax=0;for(i=0;i if(b[i]>max)max=b[i]; returnmax;} 2、哈夫曼编码程序实现 privatestaticclassHuffmanimplementsComparable { Bintreetree; floatweight; privateHuffman(Bintreett,floatww) {tree=tt;weight=ww;} publicintcompareTo(Objectx) {floatxw=((Huffman)x),weight; if(weight if(weight==xw)return0; return1;}} 3、在n个元素在找出一特定元素X。 PublicstaticintbinarySearch(int[]a, intx,intn) {intleft=0;intright=n-1;while(left<=right){ intmiddle=(left+right)/2; if(x==a[middle]) returnmiddle; if(x>a[middle])left=middle+1; else right=middle-1;} return-1;} 4、编程求解最长公共子序列 publicstaticintlcsLength(char[]x,char[]y,int[][]b) { intm=x.length-1; intn=y.length-1; int[][]c=newint[m+1][n+1]; for(inti=1;i<=m;i++)c[i][0]=0; for(inti=1;i<=n;i++)c[0][i]=0; for(inti=1;i<=m;i++) for(intj=1;j<=n;j++){ if(x[i]==y[j]){ c[i][j]=c[i-1][j-1]+1; b[i][j]=1;} elseif(c[i-1][j]>=c[i][j-1]){ c[i][j]=c[i-1][j]; b[i][j]=2;} else{ c[i][j]=c[i][j-1]; b[i][j]=3;}} returnc[m][n];} 5、最小生成树编程(prim算法) publicstaticvoidprim(intn,float[][]c) { float[]lowcost=newfloat[n+1]; int[]closest=newint[n+1]; boolean[]s=newboolean[n+1]; s[1]=true; for(inti=2;i<=n;i++){ lowcost[i]=c[1][i]; closest[i]=1; s[i]=false; } for(inti=1;i floatmin=Float.MAX_VALUE; intj=1; for(intk=2;k<=n;k++) if((lowcost[k] s[k])){ min=lowcost[k];j=k; } System.out.println(j+","+closest[j]); s[j]=true; for(intk=2;k<=n;k++) if((c[j][k] s[k])){ lowcost[k]=c[j][k]; closest[k]=j;}}} 6、最小生成树编程(Kruskal算法) staticclassEdgeNodeimplementsComparable { floatweight; intu,v; EdgeNode(intuu,intvv,floatww) { u=uu;v=vv; weight=ww;} publicintcompareTo(Objectx) { doublexw=((EdgeNode)x).weight; if(weight if(weight==xw)return0; return1;} } publicstaticbooleankruskal(intn,inte,EdgeNode[]E,EdgeNode[]t) {MinHeapH=newMinHeap (1); H.initialize(E,e); FastUnionFindU=newFastUnionFind(n); intk=0; while(e>0&&k EdgeNodex=(EdgeNode)H.removeMin(); e--; inta=U.find(x.u); intb=U.find(x.v); if(a! =b){ t[k++]=x; U.union(a,b);} }return(k==n-1);} 一。 选择题 1、二分搜索算法是利用( A )实现的算法。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法 2、下列不是动态规划算法基本步骤的是( A )。 A、找出最优解的性质 B、构造最优解 C、算出最优解 D、定义最优解 3、最大效益优先是( A )的一搜索方式。 A、分支界限法 B、动态规划法 C、贪心法 D、回溯法 4、在下列算法中有时找不到问题解的是( B )。 A、蒙特卡罗算法 B、拉斯维加斯算法 C、舍伍德算法 D、数值概率算法 5.回溯法解旅行售货员问题时的解空间树是( A )。 A、子集树B、排列树C、深度优先生成树D、广度优先生成树 6.下列算法中通常以自底向上的方式求解最优解的是( B )。 A、备忘录法B、动态规划法C、贪心法D、回溯法 7、衡量一个算法好坏的标准是(C)。 A运行速度快B占用空间少C时间复杂度低D代码短 8、以下不可以使用分治法求解的是(D)。 A棋盘覆盖问题B选择问题C归并排序D0/1背包问题 9.实现循环赛日程表利用的算法是( A )。 A、分治策略B、动态规划法C、贪心法D、回溯法 10、下列随机算法中运行时有时候成功有时候失败的是(C) A数值概率算法B舍伍德算法C拉斯维加斯算法D蒙特卡罗算法 11.下面不是分支界限法搜索方式的是( D )。 A、广度优先B、最小耗费优先C、最大效益优先D、深度优先 12.下列算法中通常以深度优先方式系统搜索问题解的是( D )。 A、备忘录法B、动态规划法C、贪心法D、回溯法 13.备忘录方法是那种算法的变形。 (B) A、分治法B、动态规划法C、贪心法D、回溯法 14.哈弗曼编码的贪心算法所需的计算时间为( B )。 A、O(n2n)B、O(nlogn)C、O(2n)D、O(n) 15.分支限界法解最大团问题时,活结点表的组织形式是( B )。 A、最小堆B、最大堆C、栈D、数组 16.最长公共子序列算法利用的算法是( B )。 A、分支界限法B、动态规划法C、贪心法D、回溯法 17.实现棋盘覆盖算法利用的算法是( A )。 A、分治法B、动态规划法C、贪心法D、回溯法 18.下面是贪心算法的基本要素的是( C )。 A、重叠子问题B、构造最优解C、贪心选择性质D、定义最优解 19.回溯法的效率不依赖于下列哪些因素(D) A.满足显约束的值的个数B.计算约束函数的时间 C.计算限界函数的时间D.确定解空间的时间 20.下面哪种函数是回溯法中为避免无效搜索采取的策略( B ) A.递归函数B.剪枝函数C。 随机数函数D.搜索函数 21、下面关于NP问题说法正确的是(B) ANP问题都是不可能解决的问题 BP类问题包含在NP类问题中 CNP完全问题是P类问题的子集 DNP类问题包含在P类问题中 22、蒙特卡罗算法是( B )的一种。 A、分支界限算法 B、概率算法 C、贪心算法 D、回溯算法 23.下列哪一种算法不是随机化算法( C ) A.蒙特卡罗算法B.拉斯维加斯算法C.动态规划算法D.舍伍德算法 24.( D )是贪心算法与动态规划算法的共同点。 A、重叠子问题B、构造最优解C、贪心选择性质D、最优子结构性质 25.矩阵连乘问题的算法可由( B)设计实现。 A、分支界限算法 B、动态规划算法 C、贪心算法 D、回溯算法 26.分支限界法解旅行售货员问题时,活结点表的组织形式是( A )。 A、最小堆B、最大堆C、栈D、数组 27、Strassen矩阵乘法是利用( A )实现的算法。 A、分治策略 B、动态规划法 C、贪心法 D、回溯法 29、使用分治法求解不需要满足的条件是(A)。 A子问题必须是一样的 B子问题不能够重复 C子问题的解可以合并 D原问题和子问题使用相同的方法解 30、下面问题(B)不能使用贪心法解决。 A单源最短路径问题BN皇后问题 C最小花费生成树问题D背包问题 31、下列算法中不能解决0/1背包问题的是(A) A贪心法B动态规划C回溯法D分支限界法 32、回溯法搜索状态空间树是按照(C)的顺序。 A中序遍历B广度优先遍历C深度优先遍历D层次优先遍历 33、下列随机算法中运行时有时候成功有时候失败的是(C) A数值概率算法B舍伍德算法C拉斯维加斯算法D蒙特卡罗算法 34.实现合并排序利用的算法是( A )。 A、分治策略B、动态规划法C、贪心法D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 江西 理工大学 算法 设计 分析 期末 复习题