您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > 2015江西理工大学算法设计与分析期末复习题
说明:2015年秋季考试编程题基本是复习题前面的编程题里面的几道,选择题都在复习题里面的选择题里面。1、设计一个O(n的平方)时间的算法,找出由n个数组成的序列的最长单调递增子序列intmain(){intn;scanf(%d,&n);inta[100];for(inti=0;in;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;in;i++){intk=0;for(j=0;ji;j++)if(a[j]=a[i]&&kb[j])k=b[j];b[i]=k+1;}intmax=0;for(i=0;in;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(weightxw)return-1;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(xa[middle])left=middle+1;elseright=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;in;i++){floatmin=Float.MAX_VALUE;intj=1;for(intk=2;k=n;k++)if((lowcost[k]min)&&(!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]lowcost[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(weightxw)return-1;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(e0&&kn-1){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、回溯法35.下列是动态规划算法基本要素的是(D)。A、定义最优解B、构造最优解C、算出最优解D、子问题重叠性质36.下列算法中通常以自底向下的方式求解最优解的是(B)。A、分治法B、动态规划法C、贪心法D、回溯法37.采用广度优先策略搜索的算法是(A)。A、分支界限法B、动态规划法C、贪心法D、回溯法38、合并排序算法是利用(A)实现的算法。A、分治策略B、动态规划法C、贪心法D、回溯法39、在下列算法中得到的解未必正确的是(B)。A、蒙特卡罗算法B、拉斯维加斯算法C、舍伍德算法D、数值概率算法40、背包问题的贪心算法所需的计算时间为(B)A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)41.实现大整数的乘法是利用的算法(C)。A、贪心法B、动态规划法C、分治策略D、回溯法42.0-1背包问题的回溯算法所需的计算时间为(A)A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)43.采用最大效益优先搜索方式的算法是(A)。A、分支界限法B、动态规划法C、贪心法D、回溯法44.贪心算法与动态规划算法的主要区别是(B)。A、最优子结构B、贪心选择性质C、构造最优解D、定义最优解45.实现最大子段和利用的算法是(B)。A、分治策略B、动态规划法C、贪心法D、回溯法46.优先队列式分支限界法选取扩展结点的原则是(C)。A、先进先出B、后进先出C、结点的优先级D、随机47.背包问题的贪心算法所需的计算时间为(B)。A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)48、广度优先是(A)的一搜索方式。A、分支界限法B、动态规划法C、贪心法D、回溯法49、舍伍德算法是(B)的一种。A、分支界限算法B、概率算法C、贪心算法D、回溯算法50、在下列算法中有时找不到问题解的是(B)。A、蒙特卡罗算法B、拉斯维加斯算法C、舍伍德算法D、数值概率算法51下列哪一种算法是随机化算法(D)A.贪心算法B.回溯法C.动态规划算法D.舍伍德算法52.一个问题可用动态规划算法或贪心算法求解的关键特征是问题的(B)。A、重叠子问题B、最优子结构性质C、贪心选择性质D、定义最优解53.采用贪心算法的最优装载问题的主要计算量在于将集装箱依其重量从小到大排序,故算法的时间复杂度为(B)。A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)54.以深度优先方式系统搜索问题解的算法称为(D)。A、分支界限算法B、概率算法C、贪心算法D、回溯算法55.实现最长公共子序列利用的算法是(B)。A、分治策略B、动态规划法C、贪心法D、回溯法二、填空题1.算法的复杂性有时间复杂性和空间复杂性之分。2、
本文标题:2015江西理工大学算法设计与分析期末复习题
链接地址:https://www.777doc.com/doc-2995654 .html