计算机学院202工程硕士《算法设计与分析》考试试卷.docVIP

计算机学院202工程硕士《算法设计与分析》考试试卷.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机学院202工程硕士《算法设计与分析》考试试卷

湖北工业大学 二O一二 年工程硕士班试卷 算法设计与分析 试题 (计算机专业用) 一、单项选择题,共5题,每小题4分。 (20分) 1.阶乘函数用递归定义 Public static int factorial(int n) { if(n = = 0) return 1; return _____ ; } A. n*factorial(n) B. n*factorial(n-1) C. n*factorial(n-2) D. n*factorial(n+1) 2.上界函数bound计算结点所相应价值的上界。 private static double bound (int i) { //计算结点所相应价值的上界   double cleft = c-cw;//剩余容量   double b = cp;//价值上界   // 以物品单位重量价值递减序装填剩余容量   while (i=n w[i]=cleft) { cleft -= w[i];   b += p[i];   i++;   }   //装填剩余容量装满背包   if (i=n)______;   return b; } A. b += p[i]/w[i]*cleft B. b = p[i]/w[i]*cleft C. b += p[i] D. b = p[i] 3.二分搜索算法的基本思想是将n个元素分成个数大致相同的两半,取a[n/2]与x进行比较:如果_______,则只要在数组a的左半部继续搜索x。 A. x=a[n/2] B. xa[n/2] C. x=a[n/2] D. x<a[n/2] 4.实现快速排序算法如下: private static void quickSort(int p ,int r) { if(pr) { int q=partition(p,r); //以确定的基准元素a[p]对子数组a[p;r]进行划分 _______ //对左半段排序 quickSort(q+1,r); //对右半段排序 } } A. quickSort(p,q-1) B. quickSort(p+1,q-1) C. quickSort(p,q+1) D. quickSort(p,q-2) 5.回溯法对解空间进行深度优先搜索,一般使用递归方法实现回溯法: void backtrack (int t) { if (t>n) output(x); else for (int i=f(n, t); i=g(n,t); i++) { x[t]=h(i); if (constraint(t)bound(t)) _______ ; } } A. backtrack(t-1) B. backtrack(t) C. backtrack(t+1) D. backtrack(t+2) 二、填空题,共6个空,每个空5分。 (30分) 1、Hanoi塔问题 设a,b,c是3个塔座。开始时,在塔座a上有一叠共n个圆盘,这些圆盘自下而上,由大到小地叠在一起。各圆盘从小到大编号为1,2,…,n,现要求将塔座a上的这一叠圆盘移到塔座b上,并仍按同样顺序叠置。在移动圆盘时应遵守以下移动规则: 规则1:每次只能移动1个圆盘; 规则2:任何时刻都不允许将较大的圆盘压在较小的圆盘之上; 规则3:在满足移动规则1和2的前提下,可将圆盘移至a,b,c中任一塔座上。 请用递归思想解决解决如下Hanoi塔算法。 void hanoi(int n, int a, int b, int c) { if (n 0) { (1)hanoi(n-1,a,b,c) ; move(a,b); (2)hanoi(n-1,c,a,b) ; } } 2、用随机投点法计算p值 设有一半径为r的圆及其外切四边形。向该正方形随机地投掷n个点。设落入圆内的点数为k。由于所投入的点在正方形上均匀分布,因而所投入的点落入圆内的概率为 。所以当n足够大时,k与n之比就逼近这一概率,从而 。 double Darts(int n) { static RandomNumber

文档评论(0)

shi194121 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档