算法分析作业
- 格式:docx
- 大小:27.05 KB
- 文档页数:8
算法分析与设计(线下作业⼆)《算法分析与设计》学习中⼼:专业:学号:姓名:作业练习⼆⼀、名词解释1、MST性质2、⼦问题的重叠性质递归算法求解问题时,每次产⽣的⼦问题并不总是新问题,有些⼦问题被反复计算多次,这种性质称为⼦问题的重叠性质。
⼆、简答题1、简述动态规划算法求解的基本要素。
答:动态规划算法求解的基本要素包括:1)最优⼦结构是问题能⽤动态规划算法求解的前提;2)动态规划算法,对每⼀个⼦问题只解⼀次,⽽后将其解保存在⼀个表格中,当再次需要解此⼦问题时,只是简单地⽤常数时间查看⼀下结果,即重叠⼦问题。
2、备忘录⽅法和动态规划算法相⽐有何异同简述之。
答:备忘录⽅法是动态规划算法的变形。
与动态规划算法⼀样,备忘录⽅法⽤表格保存已解决的⼦问题的答案,在下次需要解此问题时,只要简单地查看该⼦问题的解答,⽽不必重新计算。
备忘录⽅法与动态规划算法不同的是,备忘录⽅法的递归⽅式是⾃顶向下的,⽽动态规划算法则是⾃底向上递归的。
因此,备忘录⽅法的控制结构与直接递归⽅法的控制结构相同,区别在于备忘录⽅法为每个解过的⼦问题建⽴了备忘录以备需要时查看,避免了相同的⼦问题的重复求解,⽽直接递归⽅法没有此功能。
3、贪⼼算法求解的问题主要具有哪些性质简述之。
答:贪⼼算法求解的问题⼀般具有⼆个重要的性质:⼀是贪⼼选择性质,这是贪⼼算法可⾏的第⼀个基本要素;另⼀个是最优⼦结构性质,问题的最优⼦结构性质是该问题可⽤贪⼼算法求解的关键特征。
三、算法编写及算法应⽤分析题1、设计求解如下最⼤⼦段和问题的动态规划算法。
只需给出其递推计算公式即可。
最⼤⼦段和问题:给定由n 个整数(可能为负整数)组成的序列a1a2 … an,求该序列形如Σi≤k≤j ak的⼦段和的最⼤值。
当所有整数均为负整数时定义其最⼤⼦段和为0。
依次定义,所求的最优值为max{0, max1≤i≤j≤n Σi≤k≤j ak }。
2、关于多段图问题。
设G =(V ,E)是⼀个赋权有向图,其顶点集V 被划分成k>2个不相交的⼦集V i :1i k ≤≤,其中,V 1和V k 分别只有⼀个顶点s (称为源)和⼀个顶点t (称为汇),图中所有的边(u,v ),i u V ∈,1i v V +∈。
2013年4月考试算法设计分析第一次作业一、单项选择题(本大题共30分,共15小题,每小题2分)1.算法分析的两个主要方面是()。
A.空间复杂度和时间复杂度B,正确性和简单性C,可读性和文档性D.数据复杂度和程序复杂度2.计算机算法指的是()。
A.计算方法B.排序方法C.解决问题的方法和过程D.调度方法3.多阶段决策问题,就是要在可以选择的那些策略中间,选取一个()策略,使在预定的标准下达到最好的效果。
A.最优B.最差C.平衡D.任意4.根据排序元素所在位置的不同,排序分()。
A.内排序和外排序B.首排序和尾排序C.顺序排序和逆序排序D.堆排序和栈排序5.算法必须具备输入、输出和()等5个特性。
A.可执行性、可移植性和可扩充性B.可行性、确定性和有穷性C.确定性、有穷性和稳定性D.易读性、稳定性和安全性6.与分治法不同的是,适合于用动态规划求解的问题()A.经分解得到子问题往往不是互相独立的B.经分解得到子问题往往是互相独立的C.经分解得到子问题往往是互相交叉的D.经分解得到子问题往往是任意的7.二分搜索算法的基本思想是将n个元素分成个数大致相同的两半,取a[n/2] 与x进行比较:如果(),则只要在数组a的左半部继续搜索X。
A.x<a[n/2]B.x=a[n/2]C.x>a[n/2]D.x>=a[n/2]8.活动安排问题就是在所给的活动集合中,选出()的相容活子集。
A.最小B.任意C.最大D.一个9.在对问题的解空间树进行搜索的方法中,一个活结点最多有一次机会成为活结点的是()A.回溯法B.分支限界法C.回溯法和分支限界法D.回溯法求解子集树问题10.适用动态规划的问题必须满足()A,最优化原理B.无前效性C,最优化原理和后效性D.最优化原理和无后效性11.算法的每种运算必须要有确切的定义,不能有二义性,以下符合算法确定性运算的是()A.5/0B.将6或7与x相加C.未赋值变量参与运算D.f(n)=f(n-l)+2,F(l)=10,n 为自然数12.直接或间接的调用自身的算法称为()。
《算法分析与设计》作业( 一)本课程作业由两部分组成。
第一部分为”客观题部分”, 由15个选择题组成, 每题1分, 共15分。
第二部分为”主观题部分”,由简答题和论述题组成, 共15分。
作业总分30分, 将作为平时成绩记入课程总成绩。
客观题部分:一、选择题( 每题1分, 共15题)1、递归算法: ( C )A、直接调用自身B、间接调用自身C、直接或间接调用自身 D、不调用自身2、分治法的基本思想是将一个规模为n的问题分解为k个规模较小的字问题, 这些子问题: ( D )A、相互独立B、与原问题相同C、相互依赖D、相互独立且与原问题相同3、备忘录方法的递归方式是:( C )A、自顶向下B、自底向上C、和动态规划算法相同D、非递归的4、回溯法的求解目标是找出解空间中满足约束条件的:( A )A、所有解B、一些解C、极大解D、极小解5、贪心算法和动态规划算法共有特点是: ( A )A、最优子结构B、重叠子问题C、贪心选择D、形函数6、哈夫曼编码是: ( B)A、定长编码B、变长编码C、随机编码D、定长或变长编码7、多机调度的贪心策略是: ( A)A、最长处理时间作业优先B、最短处理时间作业优先C、随机调度D、最优调度8、程序能够不满足如下性质: ( D )A、零个或多个外部输入B、至少一个输出C、指令的确定性D、指令的有限性9、用分治法设计出的程序一般是: ( A )A、递归算法B、动态规划算法C、贪心算法D、回溯法10、采用动态规划算法分解得到的子问题:( C )A、相互独立B、与原问题相同C、相互依赖D、相互独立且与原问题相同11、回溯法搜索解空间的方法是: ( A )A、深度优先B、广度优先C、最小耗费优先D、随机搜索12、拉斯维加斯算法的一个显著特征是它所做的随机选性决策有可能导致算法: ( C )A、所需时间变化B、一定找到解C、找不到所需的解D、性能变差13、贪心算法能得到: ( C )A、全局最优解B、 0-1背包问题的解C、背包问题的解 D、无解14、能求解单源最短路径问题的算法是: ( A )A、分支限界法B、动态规划C、线形规划D、蒙特卡罗算法15、快速排序算法和线性时间选择算法的随机化版本是:( A )A、舍伍德算法B、蒙特卡罗算法C、拉斯维加斯算法D、数值随机化算法主观题部分:二、写出下列程序的答案( 每题2.5分, 共2题)1、请写出批处理作业调度的回溯算法。
《算法分析与设计》各章课后作业第一章 课后作业1. 设某算法在输入规模为n 时的计算时间为T(n)=10*2n。
若在甲台计算机上实现并完成该算法的时间为t 秒,现有一台运行速度是甲的64倍的另一台计算机乙,问在乙计算机上用同一算法在t 秒内能解决的问题的规模是多大?2.按照渐近阶从低到高的顺序排列以下表达式:4n 2,logn ,3n,20n ,2,n 2/3。
又n!应该排在哪一位?第二章 课后作业1. 用展开法求解下列递推关系:T(n)=⎩⎨⎧>+=1n )()2/(20n )1(n O n T O,写出T(n)的大O 记号表示。
2. 下面是实现在a[0]<=a[1]<=…<=a[n-1]中搜索x 的二分搜索算法,请根据二分 搜索技术在下划线处填充语句。
算法描述如下: template<class Type>public static int BinarySearch(int []a, int x, int n) { //在a[0]<=a[1]<=…<=a[n-1]中搜索 x // 找到x 时返回其在数组中的位置,否则返回-1 int left = 0; int right = n - 1; while ( ) {int middle = ;if(x == a[middle]) return ; if(x > a[middle]) left = middle + 1; else right= ; }return -1; // 未找到x}第三章课后作业1、选择题。
(1)下列算法中通常以自底向上的方式求解最优解的是()。
A、备忘录法B、动态规划法C、贪心法D、回溯法(2)备忘录方法是那种算法的变形。
()A、分治法B、动态规划法C、贪心法D、回溯法(3)矩阵连乘问题的算法可由()设计实现。
A、分支界限算法B、动态规划算法C、贪心算法D、回溯算法2.计算题。
算法分析作业 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】算法分析练习题(一)一、选择题1、二分搜索算法是利用(A )实现的算法。
A、分治策略B、动态规划法C、贪心法D、回溯法2、下列不是动态规划算法基本步骤的是(A )。
A、找出最优解的性质B、构造最优解C、算出最优解D、定义最优解3.下列算法中通常以自底向上的方式求解最优解的是(B )。
A、备忘录法B、动态规划法C、贪心法D、回溯法4、衡量一个算法好坏的标准是(C )。
A 运行速度快B 占用空间少C 时间复杂度低D 代码短5、以下不可以使用分治法求解的是(D )。
A 棋盘覆盖问题B 选择问题C 归并排序D 0/1背包问题6. 实现循环赛日程表利用的算法是(A )。
A、分治策略B、动态规划法C、贪心法D、回溯法7.备忘录方法是那种算法的变形。
( B )A、分治法B、动态规划法C、贪心法D、回溯法8.最长公共子序列算法利用的算法是(B )。
A、分支界限法B、动态规划法C、贪心法D、回溯法9.实现棋盘覆盖算法利用的算法是(A )。
A、分治法B、动态规划法C、贪心法D、回溯法10. 矩阵连乘问题的算法可由(B)设计实现。
A、分支界限算法B、动态规划算法C、贪心算法D、回溯算法11、Strassen矩阵乘法是利用(A )实现的算法。
A、分治策略B、动态规划法C、贪心法D、回溯法12、使用分治法求解不需要满足的条件是(A )。
A 子问题必须是一样的B 子问题不能够重复C 子问题的解可以合并D 原问题和子问题使用相同的方法解13、下列算法中不能解决0/1背包问题的是(A )A 贪心法B 动态规划C 回溯法D 分支限界法14.实现合并排序利用的算法是(A )。
A、分治策略B、动态规划法C、贪心法D、回溯法15.下列是动态规划算法基本要素的是(D )。
A、定义最优解B、构造最优解C、算出最优解D、子问题重叠性质16.下列算法中通常以自底向下的方式求解最优解的是(B )。
算法理论、教改类题目学习大量相关算法(程序),总结出对应方法的一些特点,将其写成论文形式,并以足够的例子作为佐证。
24.论分治法、动态规划、贪心法的区别 25.论递归程序向非递归程序的转换 26.论应用型本科院校算法课程的教学目标和教学方法 27.论二叉树在计算机科学与技术中的应用 28.数据库索引的算法解释 29.论贪心法的适用范围 30.解空间搜索方法的选择依据 31.分治法算法分析综述
算法应用、算法研究类题目查阅大量相关资料,对相关内容给出初步的结果。
31.基于UCCI的中国象棋对弈引擎开发技术研究 32.五子棋对弈关键技术研究33.黑白棋对弈关键技术研究 34.数独初始局面生成算法研究 35.支持按文件名搜索的索引构造技术研究 36.通用回溯算法演示系统设计 37.通用分支限界算法演示系统设计 38.通用排序算法演示系统设计 39.通用动态规划算法演示系统设计
40.论文阅读和翻译类题目• 给出一个英文文献,用准确的语言将其翻译为中文,不需要逐字逐句翻译,但主要观点、算法思想和算法过程表述清楚、准确、充分。
格式要求• 论文正文中不得出现大段代码(超过10行)• 标题样式需规范• 参考文献不低于10篇,参考文献格式和标注位置须规范。
算法分析与设计19春在线作业1-0002
试卷总分:100 得分:100
一、单选题 (共 20 道试题,共 40 分)
1.下列算法描述所用的方法是() Begin(算法开始)输入 A,B,C IF A>B 则 A→Max 否则B→Max IF C>Max 则 C→Max Print Max End (算法结束)
A.流程图
B.N-S流程图
C.伪代码表示
D.程序设计语言
答案:C
2.某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为()。
A.n+1
B.n-1
C.2n
D.n/2
答案:A
3.下列叙述中正确的是()
A.线性链表是线性表的链式存储结构
B.栈与队列是非线性结构
C.双向链表是非线性结构
D.只有根结点的二叉树是线性结构
答案:A
4.设有如下函数定义 int fun(int k) { if (k<1) return 0; else if(k==1) return 1; else return fun(k-1)+1; } 若执行调用语句:n=fun(3);,则函数fun 总共被调用的次数是()。
A.2
B.3
C.4
D.5
答案:B
5.strchr()函数用来()。
A.字符串连接
B.比较字符
C.求字符位置
D.求子串位置
答案:C
6.下面4句话中,最准确的表述是()。
A.程序=算法+数据结构
B.程序是使用编程语言实现算法
C.程序的开发方法决定算法设计。
第二章递归习题导论4.1-17(/?) = 27(b / 2)+ 1=> M = 2T5 /2) + 1%)习题导论4.1-6Tin) = 2T(0) + 1做代换:m=log2n另 S(m)=T(2m )则有: S(/z?) = 2S(zz? / 2) + 1 化简有:S(m)=O(m) 所以 T(n)=O(logn)习题4.2-27(/7)= T(n / 3) + 7(2/7 / 3) + 劲 注意最长分支 2n/3-*(2n/3)2 -*(2n/3)3...-*(2n^)log3/2n 习题4.3-1a) T(n) = 4T(n/2) + nb) T(n) = 4T(n/2) + n 2c 取大于1/2小于1的数即可,如珈习题4.3-4f(n )/nlogba = n 2log n/n'°g"二 log nvn所以不满足规则3直接化简即可,T(n)=O(n 2log 2n)c) T(n) = 4T(n/2) + n 3情况 3, ◎ (r?). 验证 4f(n/2)=4(n/2)3=n 3/2^cn 3,这里7X2")27(2"/彳)+情况4 0(n 2)情况 2, © (n 2logn)第三章习题4.5注意三分Z—和三分Z二分割点的计算ml = (2low+high)^m2 = (low+2high)/3习题4.20主要是验证T(n/r) + T(0)>|« n/r+O的数量级是否小于n的1次方(线性) 利用关系式:\n / r」n (/7 - r - 1) / /进行化简r=3:\r / 2~|~|_/2 / /_] / 2~| > 2 z? / r / 2 = n / r」> (/? 一2) / 3则,刀一卜/2北刀 / 厂」/ 2] < /? - (/? - 2) / 3 = 2/7 / 3 + 2 / 3 则,n〃 +羊n +厉超线性了r=7:\r / 2]\n / r\/ 2〕>/ 7」/2 = 2山 / 7」> 2(刀一6) / 7则,n - \r / i\\n / /」/ 2〕v 刀一2(刀一6) / 7 = 5刀 / 7 + 12 / 7可证,当n>48的时候,上式小于3伙则,n/7+3nA = 25n/28 <n 成立r=9:\r / 2][n / 厂」/ 2〕> 5[刀 / 9」/ 2 = (5 / 2)^/9」> 5(刀-8)/18n一\r / 2\[n / /」/ 2〕< 13/?/18 + 40/18可证,当n>20的时候,上式小于7n/8 则,n/9+7n/8 = 71n/72 <n 成立r=ll习题4.25肓接带入验证即可棋盘覆盖问题角上用一个骨牌覆盖,认为构造有特殊方格的区域,然后在四个区域上递归求解即可第四章中位数中位数习题导论9-2A)比较明显。
算法分析与设计作业及参考答案作业题目1、请分析冒泡排序算法的时间复杂度和空间复杂度,并举例说明其在实际中的应用场景。
2、设计一个算法,用于在一个未排序的整数数组中找到第二大的元素,并分析其时间复杂度。
3、比较贪心算法和动态规划算法的异同,并分别举例说明它们在解决问题中的应用。
参考答案1、冒泡排序算法时间复杂度:冒泡排序的基本思想是通过相邻元素的比较和交换,将最大的元素逐步“浮”到数组的末尾。
在最坏情况下,数组完全逆序,需要进行 n 1 轮比较和交换,每一轮比较 n i 次(i 表示当前轮数),所以总的比较次数为 n(n 1) / 2,时间复杂度为 O(n^2)。
在最好情况下,数组已经有序,只需要进行一轮比较,时间复杂度为 O(n)。
平均情况下,时间复杂度也为 O(n^2)。
空间复杂度:冒泡排序只在原数组上进行操作,不需要额外的存储空间,空间复杂度为 O(1)。
应用场景:冒泡排序算法简单易懂,对于规模较小的数组,或者对算法的简单性要求较高而对性能要求不是特别苛刻的场景,如对少量数据进行简单排序时,可以使用冒泡排序。
例如,在一个小型的学生成绩管理系统中,需要对一个班级的少量学生成绩进行排序展示,冒泡排序就可以满足需求。
2、找到第二大元素的算法以下是一种使用遍历的方法来找到未排序整数数组中第二大元素的算法:```pythondef find_second_largest(arr):largest = arr0second_largest = float('inf')for num in arr:if num > largest:second_largest = largestlargest = numelif num > second_largest and num!= largest:second_largest = numreturn second_largest```时间复杂度分析:这个算法需要遍历数组一次,所以时间复杂度为O(n)。
算法分析练习题一
一、选择题
1、二分搜索算法是利用A 实现的算法;
A、分治策略
B、动态规划法
C、贪心法
D、回溯法
2、下列不是动态规划算法基本步骤的是A ;
A、找出最优解的性质
B、构造最优解
C、算出最优解
D、定义最优解
3.下列算法中通常以自底向上的方式求解最优解的是B ;
A、备忘录法
B、动态规划法
C、贪心法
D、回溯法
4、衡量一个算法好坏的标准是C ;
A 运行速度快
B 占用空间少
C 时间复杂度低
D 代码短
5、以下不可以使用分治法求解的是D ;
A 棋盘覆盖问题
B 选择问题
C 归并排序
D 0/1背包问题
6. 实现循环赛日程表利用的算法是A ;
A、分治策略
B、动态规划法
C、贪心法
D、回溯法
7.备忘录方法是那种算法的变形; B
A、分治法
B、动态规划法
C、贪心法
D、回溯法8.最长公共子序列算法利用的算法是B ;
A、分支界限法
B、动态规划法
C、贪心法
D、回溯法9.实现棋盘覆盖算法利用的算法是A ;
A、分治法
B、动态规划法
C、贪心法
D、回溯法
10. 矩阵连乘问题的算法可由B设计实现;
A、分支界限算法
B、动态规划算法
C、贪心算法
D、回溯算法
11、Strassen矩阵乘法是利用A 实现的算法;
A、分治策略
B、动态规划法
C、贪心法
D、回溯法
12、使用分治法求解不需要满足的条件是A ;
A 子问题必须是一样的
B 子问题不能够重复
C 子问题的解可以合并
D 原问题和子问题使用相同的方法解
13、下列算法中不能解决0/1背包问题的是A
A 贪心法
B 动态规划
C 回溯法
D 分支限界法
14.实现合并排序利用的算法是A ;
A、分治策略
B、动态规划法
C、贪心法
D、回溯法
15.下列是动态规划算法基本要素的是D ;
A、定义最优解
B、构造最优解
C、算出最优解
D、子问题重叠性质16.下列算法中通常以自底向下的方式求解最优解的是B ;
A、分治法
B、动态规划法
C、贪心法
D、回溯法
17、合并排序算法是利用A 实现的算法;
A、分治策略
B、动态规划法
C、贪心法
D、回溯法
18.实现大整数的乘法是利用的算法C ;
A、贪心法
B、动态规划法
C、分治策略
D、回溯法
19. 实现最大子段和利用的算法是B ;
A、分治策略
B、动态规划法
C、贪心法
D、回溯法
20. 一个问题可用动态规划算法或贪心算法求解的关键特征是问题的B ;
A、重叠子问题
B、最优子结构性质
C、贪心选择性质
D、定义最优解
21. 实现最长公共子序列利用的算法是B ;
A、分治策略
B、动态规划法
C、贪心法
D、回溯法
二、填空题
1.算法的复杂性有时间复杂性和空间复杂性之分;
2、程序是算法用某种程序设计语言的具体实现;
3、算法的“确定性”指的是组成算法的每条指令是清晰的,无歧义的;
4.矩阵连乘问题的算法可由动态规划设计实现;
5、算法是指解决问题的一种方法或一个过程 ;
6、从分治法的一般设计模式可以看出,用它设计出的程序一般是递归算法 ;
7、矩阵连乘问题的算法可由动态规划设计实现;
8. 动态规划算法的基本思想是将待求解问题分解成若干子问题 ,先求解子问题 ,然后从这些子问题的解得到原问题的解;
9.算法是由若干条指令组成的有穷序列,且要满足输入、输出、确定性和有限性四条性质;
10、大整数乘积算法是用分治法来设计的;
11.快速排序算法是基于分治策略的一种排序算法;
12.动态规划算法的两个基本要素是. 性质和性质 ;
13.任何可用计算机求解的问题所需的时间都与其规模有关;
14.快速排序算法的性能取决于划分的对称性 ;
15、出自于“平衡子问题”的思想,通常分治法在分割原问题,形成若干子问题时,这些子问题的规模都大致相同 ;
16、使用二分搜索算法在n个有序元素表中搜索一个特定元素,在最佳情况下,搜索的时间复杂性为O,在最坏情况下,搜索的时间复杂性为O logn ;
17、已知一个分治算法耗费的计算时间Tn,Tn满足如下递归方程:
解得此递归方可得Tn= O nlogn ;
18、动态规划算法有一个变形方法备忘录方法 ;这种方法不同于动态规划算法“自底向上”的填充方向,而是“自顶向下”的递归方向,为每个解过的子问题建立了备忘录以备需要时查看,同样也可避免相同子问题的重复求解;
19、递归的二分查找算法在divide阶段所花的时间是 O1 ,conquer阶段所花的时间是 Tn/2 ,算法的时间复杂度是 Ologn ;
20、用动态规划算法计算矩阵连乘问题的最优值所花的时间是 On3 , 子问题空间大
小是 On2 ;
21、一个算法的优劣可以用时间复杂度与空间复杂度与来衡量;
22、直接或间接地调用自身的算法称为递归算法;
23、记号在算法复杂性的表示法中表示渐进确界或紧致界;
24、在分治法中,使子问题规模大致相等的做法是出自一种平衡子问题的思想;
25、动态规划算法适用于解具有某种最优性质问题;
26、最优子结构性质的含义是问题的最优解包含其子问题的最优解;
27、按照符号O的定义Of+Og等于Omax{fn,gn};
28、二分搜索技术是运用分治策略的典型例子;
29、动态规划算法中,通常不同子问题的个数随问题规模呈多项式级增长;
30、最优子结构性质和子问题重叠性质是采用动态规划算法的两个基本要素;
三、算法填空
1.最大子段和: 动态规划算法
int MaxSumint n, int a
{
int sum=0, b=0; 速排序
template<class Type>
void QuickSort Type a, int p, int r
{
if p<r {
int q=Partitiona,p,r;
QuickSorta,p,q-1 ; 最长上升子序列问题—— 提示:此题可采用动态规划算法实现
对于给定的一个序列12(,,
,)N a a a ,11000N ≤≤;我们可以得到一些递增上升的子序列12(,,,)i i iK a a a ,这里121K i i i N ≤<<<≤;比如,对于序列1, 7, 3, 5, 9, 4, 8,有它的一
些上升子序列,如1, 7, 3, 4, 8等等;这些子序列中最长的长度是4,比如子序列1, 3, 5, 8;你的任务:就是对于给定的序列,求出最长上升子序列的长度;要求写出你设计的算法思想及递推函数的公式表达;.
2.Gray码构造问题——提示:此题可采用分治递归算法实现
问题描述:“格雷码”是一个长度为n2的序列,满足:
a每个元素都是长度为n比特的串
b序列中无相同元素
c连续的两个元素恰好只有1个比特不同
例如:n=2时,格雷码为{00,01,11,10};
Gray码是一种编码,这种编码可以避免在读取时,因各数据位时序上的差异造成的误读;格雷码在工程上有广泛应用;但格雷码不便于运算,请你设计一种构造方法,输入长度序列n,输出格雷码你只要做出一种构造方案即可,格雷码并不唯一;
3.现在有8位运动员要进行网球循环赛,要设计一个满足以下要求的比赛日程表:
(1)每个选手必须与其他选手各赛一次;
(2)每个选手一天只能赛一次;
(3)循环赛一共进行n – 1天;
请利用分治法的思想,给这8位运动员设计一个合理的比赛日程;
4.对于矩阵连乘所需最少数乘次数问题,其递归关系式为:
其中mi,j为计算矩阵连乘Ai…Aj所需的最少数乘次数,p
i-1为矩阵Ai的行,
i
p为矩阵Ai的
列;现有四个矩阵,其中各矩阵维数分别为:
请根据以上的递归关系,计算出矩阵连乘积A
1A
2
A
3
A
4
所需要的最少数乘次数;
5.有这样一类特殊0-1背包问题:可选物品重量越轻的物品价值越高;
n=6,c=20,P=4,8,15,1,6,3,W=5,3,2,10,4,8;
其中n为物品个数,c为背包载重量,P表示物品的价值,W表示物品的重量;请问对于此0-1背包问题,应如何选择放进去的物品,才能使到放进背包的物品总价值最大,能获得的最大总价值多少
6.归并排序算法对下列实例排序,写出算法执行过程;
A=48,12,61,3,5,19,32,7
7.规则证明: Ofn+Ogn = Omax{fn,gn}
8. 给定已按升序排好序的n个元素a0:n-1,现要在这n个元素中找出一特定元素x,返回其在
数组中的位置,如果未找到返回-1;
写出二分搜索的算法,并分析其时间复杂度;
9. 利用分治算法写出合并排序的算法,并分析其时间复杂度。