算法设计与分析课程期末试卷-A卷(自测 )

合集下载

算法设计方案与分析课程期末试卷

算法设计方案与分析课程期末试卷
搜索方式:回溯法以深度优先的方式搜索解空间,而分支限界法则以广度优先或以最小耗费优先的方式搜索解空间。
回溯法:以深度优先方式系统搜索问题解的算法为回溯法,适合解组合数较大的问题。
分支限界法适合解决大量离散最优化的问题。
2、给定n件物品和一个背包,物品i的重量是wi,体积是vi<wi,vi均为整数),价值是pi;背包的容量为C,容积为D。一件物品只能整个放进背包中或不放进背包中,也不允许重复放入。0-1背包问题问应如何选择装入背包的物品,使得装入背包中的物品不超过背包容量容积限制,并且物品的总价值最大?设m(i,j,k>是背包容量为j,容积为k,可选择物品为1,2,…,i时0-1背包问题的最优值,请给出计算m(i,j,k>的递归关系式。
{
if(n > 0 && x >= a[0]>
{
int left = 0, right = n-1。
while(left < right>
{
int middle = (left + right + 1> / 2。
if(x < a[middle]>
right = middle - 1。
else left = middle。
8、设q<n,m)是将正整数n划分成最大加数不大于m的若干不同正整数之和的划分数,则q<n,m)为B。
<A)
1<n=1 || m=1)
q(n, n><n<m)
q<n,m)=1 + q(n, n-1><n = m)
q(n, m-2> +q(n-m,m><n > m > 1)

算法设计与分析 期末试卷 A卷(完整含答案)

算法设计与分析 期末试卷 A卷(完整含答案)
参考解答:若字符 a~h 出现的频率恰好是前 8 个 Fibonacci 数,它们的 Haffman 编码树如下图所示。
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;

算法设计与分析期末试卷A卷

算法设计与分析期末试卷A卷

算法设计与分析期末试卷A卷一、选择题1.二分搜索算法是利用(A)实现的算法。

A、分治策略B、动态规划法C、贪心法D、回溯法解析:二分搜索是一种基于分治策略的算法。

2.回溯法解旅行售货员问题时的解空间树是(A)。

A、子集树B、排列树C、深度优先生成树D、广度优先生成树解析:旅行售货员问题的解空间树是子集树,因为每个结点代表一个城市的集合。

3.下列算法中通常以自底向上的方式求解最优解的是(B)。

A、备忘录法B、动态规划法C、贪心法D、回溯法解析:动态规划法通常以自底向上的方式求解最优解。

4.下面不是分支界限法搜索方式的是(D)。

A、广度优先B、最小耗费优先C、最大效益优先D、深度优先解析:分支界限法搜索方式包括广度优先、最小耗费优先和最大效益优先,但不包括深度优先。

5.采用贪心算法的最优装载问题的主要计算量在于将集装箱依其重量从小到大排序,故算法的时间复杂度为(B)。

A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)解析:最优装载问题采用贪心算法的主要计算量在于将集装箱依其重量从小到大排序,因此时间复杂度为O(nlogn)。

6.分支限界法解最大团问题时,活结点表的组织形式是(B)。

A、最小堆B、最大堆C、栈D、数组解析:分支限界法解最大团问题时,活结点表的组织形式是最大堆。

7、下面问题(B)不能使用贪心法解决。

A 单源最短路径问题C 最小花费生成树问题B N皇后问题D 背包问题解析:N皇后问题不能使用贪心法解决。

8.下列算法中不能解决0/1背包问题的是(A)A 贪心法B 动态规划C 回溯法D 分支限界法解析:贪心法不能解决0/1背包问题。

9.背包问题的贪心算法所需的计算时间为(B)A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)解析:背包问题的贪心算法所需的计算时间为O (nlogn)。

二、填空题1.算法的复杂性有时间复杂性和空间复杂性之分。

2.算法是由若干条指令组成的有穷序列,且要满足输入、输出、确定性和有穷性四条性质。

算法设计与分析 期末试卷 A卷 完整含答案

算法设计与分析 期末试卷 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= 。

2008.7算法设计与分析课程期末试卷

2008.7算法设计与分析课程期末试卷

华南农业大学期末考试试卷(A卷)2007学年第二学期考试科目:算法分析与设计考试类型:(闭卷)考试时间:120分钟学号姓名年级专业一、选择题(30分,每题2分)1、下面的算法段针对不同的自然数n作不同的处理,其中函数odd (n) 当n是奇数时返回true,否则返回false,while ( n > 1)if ( odd (n) )n = 3 * n + 1;elsen = n / 2;请问该算法所需计算时间的下界是 D 。

A.Ω(2n)B.Ω(nlog n)C.Ω(n!)D.Ω(logn)2、某体育馆有一羽毛球场出租,现在总共有10位客户申请租用此羽毛球场,每个客户所租用的时间单元如下表所示,s(i)表示开始租用时刻,f(i)表示结束租用时刻,同一时刻,该羽毛球场只能租借给一位客户,请问在这10位客户里面,体育馆最多能满足B 位客户的需求。

P104A.3 B.4 C.5 D.63、当一个确定性算法在最坏情况下的计算复杂性与其在平均情况下的计算复杂性有较大差别时,可以使用 B 来消除或减少问题的好坏实例间的这种差别。

A .数值概率算法 B .舍伍德算法 C .拉斯维加斯算法 D .蒙特卡罗算法4、将一个正整数n 表示成一系列正整数之和, n = n 1 + n 2 + … +n k (其中,n 1≥n 2≥ … ≥n k ≥1,k ≥1)正整数n 的一个这种表示称为正整数n 的一个划分。

正整数n 的不同的划分个数总和称为正整数n 的划分数,记作p (n );另外,在正整数n 的所有不同划分中,将最大加数n1不大于m 的划分个数记作q (n ,m )。

则当n=10时,p (n )= C 。

A .q (8,8) B .1 + q (9,9) P12 C .2 + q (10,8) D .A ,B ,C 都正确5、对于含有n 个元素的子集树问题,最坏情况下其解空间的叶结点数目为 B 。

A .n!B .2nC .2n+1-1 D .∑=ni i n 1!/! P1406、在棋盘覆盖问题中,对于2k ×2k 的特殊棋盘(有一个特殊方块),所需的L 型骨牌的个数是 A 。

算法设计与分析a卷及答案

算法设计与分析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)。

29.1算法设计与分析课程期末试卷-a卷(自测 ) (2)(1)

29.1算法设计与分析课程期末试卷-a卷(自测 ) (2)(1)

华南农业大学期末考试试卷(A卷)2008学年第一学期考试科目:算法分析与设计考试类型:(闭卷)考试时间:120 分钟学号姓名年级专业一、选择题(20分,每题2分)1.下述表达不正确的是。

A.n2/2 + 2n的渐进表达式上界函数是O(2n)B.n2/2 + 2n的渐进表达式下界函数是Ω(2n)C.logn3的渐进表达式上界函数是O(logn)D.logn3的渐进表达式下界函数是Ω(n3)2.当输入规模为n时,算法增长率最大的是。

A.5n B.20log2n C.2n2 D.3nlog3n3.T(n)表示当输入规模为n时的算法效率,以下算法效率最优的是。

A.T(n)= T(n – 1)+1,T(1)=1 B.T(n)= 2n2C.T(n)= T(n/2)+1,T(1)=1 D.T(n)= 3nlog2n4.在棋盘覆盖问题中,对于2k×2k的特殊棋盘(有一个特殊方块),所需的L型骨牌的个数是。

A.(4k– 1)/3 B.2k /3 C.4k D.2k5.在寻找n个元素中第k小元素问题中,若使用快速排序算法思想,运用分治算法对n个元素进行划分,应如何选择划分基准?下面答案解释最合理。

A.随机选择一个元素作为划分基准B.取子序列的第一个元素作为划分基准C.用中位数的中位数方法寻找划分基准D.以上皆可行。

但不同方法,算法复杂度上界可能不同6.有9个村庄,其坐标位置如下表所示:现在要盖一所邮局为这9个村庄服务,请问邮局应该盖在才能使到邮局到这9个村庄的总距离和最短。

A.(4.5,0)B.(4.5,4.5)C.(5,5)D.(5,0)7.n个人拎着水桶在一个水龙头前面排队打水,水桶有大有小,水桶必须打满水,水流恒定。

如下说法不正确?A.让水桶大的人先打水,可以使得每个人排队时间之和最小B.让水桶小的人先打水,可以使得每个人排队时间之和最小C.让水桶小的人先打水,在某个确定的时间t内,可以让尽可能多的人打上水D.若要在尽可能短的时间内,n个人都打完水,按照什么顺序其实都一样8.分治法的设计思想是将一个难以直接解决的大问题分割成规模较小的子问题,分别解决子问题,最后将子问题的解组合起来形成原问题的解。

最新算法设计与分析试卷(A)及答案

最新算法设计与分析试卷(A)及答案

考试课程:班级:姓名:学号:-------------------------------------------------密----------------------------------封-----------------------------线---------------------------------------------------------考试课程:班级:姓名:学号:------------------------------------------------- 密 ---------------------------------- 封 ----------------------------- 线 ---------------------------------------------------------参考答案一、填空1、空间复杂度 时间复杂度2、回溯法3、递归算法4、渐进确界或紧致界5、原问题的较小模式 递归技术6、问题的计算复杂性分析有一个共同的客观尺度7、②③④①8、问题的最优解包含其子问题的最优解9、局部最优 10、正确的三、简答题1、高级语言更接近算法语言,易学、易掌握,一般工程技术人员只需要几周时间的培训就可以胜任程序员的工作;高级语言为程序员提供了结构化程序设计的环境和工具,使得设计出来的程序可读性好,可维护性强,可靠性高;高级语言不依赖于机器语言,与具体的计算机硬件关系不大,因而所写出来的程序可植性好、重用率高;把繁杂琐碎的事务交给编译程序,所以自动化程度高,开发周期短,程序员可以集中时间和精力从事更重要的创造性劳动,提高程序质量。

2、 ①不能保证最后求得的解是最佳的;即多半是近似解。

(少数问题除外)②策略容易发现(关键:提取清楚问题中的维度), 而且运用简单,被广泛运用。

③策略多样,结果也多样。

④算法实现过程中,通常用到辅助算法:排序3、解:① 因为:;01-10n n )1-10n n (lim 222=+-+→∞n n 由渐近表达式的定义易知: 1-10n n 22+是n ;的渐近表达式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

华南农业大学期末考试试卷(A卷)2008学年第一学期考试科目:算法分析与设计考试类型:(闭卷)考试时间:120分钟学号姓名年级专业一、选择题(20分,每题2分)1.下述表达不正确的是。

A.n2/2 + 2n的渐进表达式上界函数是O(2n)B.n2/2 + 2n的渐进表达式下界函数是Ω(2n)C.logn3的渐进表达式上界函数是O(logn)D.logn3的渐进表达式下界函数是Ω(n3)2.当输入规模为n时,算法增长率最大的是。

A.5n B.20log2n C.2n2D.3nlog3n3.T(n)表示当输入规模为n时的算法效率,以下算法效率最优的是。

A.T(n)= T(n – 1)+1,T(1)=1 B.T(n)= 2n2C.T(n)= T(n/2)+1,T(1)=1 D.T(n)= 3nlog2n4.在棋盘覆盖问题中,对于2k×2k的特殊棋盘(有一个特殊方块),所需的L型骨牌的个数是。

A.(4k– 1)/3 B.2k /3 C.4k D.2k5.在寻找n个元素中第k小元素问题中,若使用快速排序算法思想,运用分治算法对n个元素进行划分,应如何选择划分基准?下面答案解释最合理。

A.随机选择一个元素作为划分基准B.取子序列的第一个元素作为划分基准C.用中位数的中位数方法寻找划分基准D.以上皆可行。

但不同方法,算法复杂度上界可能不同6.现在要盖一所邮局为这9个村庄服务,请问邮局应该盖在 才能使到邮局到这9个村庄的总距离和最短。

A .(4.5,0) B .(4.5,4.5) C .(5,5) D .(5,0)7. n 个人拎着水桶在一个水龙头前面排队打水,水桶有大有小,水桶必须打满水,水流恒定。

如下 说法不正确?A .让水桶大的人先打水,可以使得每个人排队时间之和最小B .让水桶小的人先打水,可以使得每个人排队时间之和最小C .让水桶小的人先打水,在某个确定的时间t 内,可以让尽可能多的人打上水D .若要在尽可能短的时间内,n 个人都打完水,按照什么顺序其实都一样8. 分治法的设计思想是将一个难以直接解决的大问题分割成规模较小的子问题,分别解决子问题,最后将子问题的解组合起来形成原问题的解。

这要求原问题和子问题 。

A .问题规模相同,问题性质相同B .问题规模相同,问题性质不同C .问题规模不同,问题性质相同D .问题规模不同,问题性质不同9. 对布线问题,以下 是不正确描述。

A .布线问题的解空间是一个图B .可以对方格阵列四周设置围墙,即增设标记的附加方格的预处理,使得算法简化对边界的判定C .采用广度优先的标号法找到从起点到终点的布线方案(这个方案如果存在的话)不一定是最短的D .采用先入先出的队列作为活结点表,以终点b 为扩展结点或活结点队列为空作为算法结束条件10. 对于含有n 个元素的子集树问题,最坏情况下其解空间的叶结点数目为 。

A .n!B .2nC .2n+1-1D .∑=ni i n 1!/!答案:DACAD CACCB二、填空题(10分,每题2分)1、一个算法复杂性的高低体现在计算机运行该算法所需的时间和存储器资源上,因此算法的复杂性有 时间 复杂性和空间复杂性之分。

2、出自于“平衡子问题”的思想,通常分治法在分割原问题,形成若干子问题时,这些子问题的规模都大致 相同 。

3、使用二分搜索算法在n 个有序元素表中搜索一个特定元素,在最佳情况下,搜索的时间复杂性为O ( 1 ),在最坏情况下,搜索的时间复杂性为O ( logn )。

4、已知一个分治算法耗费的计算时间T(n),T(n)满足如下递归方程:⎩⎨⎧≥+<=22221n n O n T n O n T )()/()()( 解得此递归方可得T(n)= O ( nlogn )。

5、动态规划算法有一个变形方法 备忘录方法 。

这种方法不同于动态规划算法“自底向上”的填充方向,而是“自顶向下”的递归方向,为每个解过的子问题建立了备忘录以备需要时查看,同样也可避免相同子问题的重复求解。

参考解答:1、时间 2、相同 3、1 logn 4、log n n 5、备忘录方法三、简答题(40分,每题8分)1、(8分)写出下列复杂性函数的偏序关系(即按照渐进阶从低到高排序):2323log !log 10nnn n n n nn n参考解答:3210log log 23!n nn n n nn n n2、(8分)现在有8位运动员要进行网球循环赛,要设计一个满足以下要求的比赛日程表:(1)每个选手必须与其他选手各赛一次;(2)每个选手一天只能赛一次;(3)循环赛一共进行n – 1天。

请利用分治法的思想,给这8位运动员设计一个合理的比赛日程。

参考解答:3、(8分)某体育馆有一羽毛球场出租,现在总共有10位客户申请租用此羽毛球场,每个客户所租用的时间单元如下表所示,s(i)表示开始租用时刻,f(i)表示结束租用时同一时刻,该羽毛球场只能租借给一位客户,请设计一个租用安排方案,在这10位客户里面,使得体育馆能尽可能满足多位客户的需求,并算出针对上表的10个客户申请,最多可以安排几位客户申请。

1)选择申请1(1,4)2)依次检查后续客户申请,只要与已选择的申请相容不冲突,则选择该申请。

直到所有申请检查完毕。

申请4(5,7)、申请8(8,11)、申请10(11,13)3)最后,可以满足:申请1(1,4)、申请4(5,7)、申请8(8,11)、申请10(11,13)共4个客户申请。

这已经是可以满足的最大客户人数。

4、(8分)对于矩阵连乘所需最少数乘次数问题,其递归关系式为:1i k j0[,]min{[,][1,]}i k j i j m i j m i k m k j p p p i j -≤<=⎧⎪=⎨+++<⎪⎩其中m[i ,j]为计算矩阵连乘Ai …Aj 所需的最少数乘次数,p i-1为矩阵Ai 的行,i p 为矩阵Ai 的列。

现有四个矩阵,其中各矩阵维数分别为:请根据以上的递归关系,计算出矩阵连乘积A 1A 2A 3A 4所需要的最少数乘次数。

参考解答:014024034[1][1][2][4]080005010510500[1][4]min [1][2][3][4]2000060005040536000[1][3][4][4]270000503053450010500m m p p p m m m p p p m m p p p ++=++⨯⨯=⎧⎪=++=++⨯⨯=⎨⎪++=++⨯⨯=⎩=5、(8分)有这样一类特殊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背包问题,应如何选择放进去的物品,才能使到放进背包的物品总价值最大,能获得的最大总价值多少?参考解答:因为该0-1背包问题比较特殊,恰好重量越轻的物品价值越高,所以优先取重量轻的物品放进背包。

最终可以把重量分别为2,3,4,5的三个物品放进背包,得到的价值和为15 + 8 + 6 + 4 = 33,为最大值。

四、算法设计题(30分,前三题每题8分,最后一题6分)1、【最优服务次序问题】(8分)—— 提示:此题可采用贪心算法实现问题描述:设有n 个顾客同时等待一项服务,顾客i 需要的服务时间为ti ,1<=i<=n 。

应该如何安排n 个顾客的服务次序才能使平均等待时间达到最小?(平均等待时间是n 个顾客等待服务时间的总和除以n )。

参考解答:贪心策略:最短服务时间优先。

将n 个顾客的服务时间ti 按照由小到大排序,n 个顾客的服务调度方案即为排序后的顺序,即可使得平均等待时间最小。

评分准则:1) 答到使用贪心算法,并且说明贪心的策略是短服务优先,本题即可得满分; 2) 仅说明使用贪心算法,但未说明贪心策略,答题不完整,扣2分以上; 3) 其它情况酌情考虑。

2、【Gray 码构造问题】(8分)—— 提示:此题可采用分治递归算法实现 问题描述:“格雷码”是一个长度为n 2的序列,满足:(a )每个元素都是长度为n 比特的串(b )序列中无相同元素(c )连续的两个元素恰好只有1个比特不同 例如:n=2时,格雷码为{00,01,11,10}。

Gray 码是一种编码,这种编码可以避免在读取时,因各数据位时序上的差异造成的误读。

格雷码在工程上有广泛应用。

但格雷码不便于运算,请你设计一种构造方法,输入长度序列n ,输出格雷码(你只要做出一种构造方案即可,格雷码并不唯一)。

参考解答: 此题可用分治法解决。

当n =1时,输出格雷码{0, 1}当n>1时,格雷码的长度为n2,即共有n2个码序列。

此时,将问题一分为二,即上半部分和下半部分。

上半部分最高位设为0,下半部分最高位设为1。

剩下n-1位的格雷码的构造采用递归的思路。

评分准则:1) 答到使用分治算法,并且推导出分治算法的过程,边界设定清晰(即当仅输出1位的格雷码如何处理),本题即可得满分; 2) 说明使用分治算法,但漏边界条件,扣2分以上; 3) 其它情况酌情考虑。

3、【最长上升子序列问题】(8分)—— 提示:此题可采用动态规划算法实现对于给定的一个序列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)。

你的任务:就是对于给定的序列,求出最长上升子序列的长度。

要求写出你设计的算法思想及递推函数的公式表达。

参考解答:设()f i 表示:从左向右扫描过来直到以[]a i 元素结尾的序列,获得的最长上升子序列的长度,且子序列包含[]a i 元素(1i n ≤≤)。

11()max{()1:[][];1}111;(1)[][]i f i f j a i a j j i i i j j i a i a j =⎧⎪=+>≤<>⎨⎪>∀≤<<=⎩当,都有即,()f i 是从(1)f ,(2)f ……到(1)f i -中找最大的一个值,再加1。

或者就是1。

主要是看a[i]这个元素能否加入到之前已经获得的最长上升子序列,如果能加入,是之前已获得的最长上升子序列长度加一;如果不能加入,就取这最后一个元素作为一个单独子序列,长度为1。

最后,所要求的整个序列的最长公共子序列长度为max{f(i): 1<=i<=n}评分准则:1) 答到使用动态规划算法,并且推导出动态规划算法的递推函数公式表达,边界设定清晰,本题即可得满分;(阅卷时仔细看递推公式表达,公式表达含义正确即可,因其表达形式可能不唯一)2) 说明使用动态规划算法,但对递推函数表达错误或含糊,扣2分以上; 3) 其它情况酌情考虑。

相关文档
最新文档