算法分析作业.docx

上传人:b****3 文档编号:10672543 上传时间:2023-05-27 格式:DOCX 页数:10 大小:493.88KB
下载 相关 举报
算法分析作业.docx_第1页
第1页 / 共10页
算法分析作业.docx_第2页
第2页 / 共10页
算法分析作业.docx_第3页
第3页 / 共10页
算法分析作业.docx_第4页
第4页 / 共10页
算法分析作业.docx_第5页
第5页 / 共10页
算法分析作业.docx_第6页
第6页 / 共10页
算法分析作业.docx_第7页
第7页 / 共10页
算法分析作业.docx_第8页
第8页 / 共10页
算法分析作业.docx_第9页
第9页 / 共10页
算法分析作业.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

算法分析作业.docx

《算法分析作业.docx》由会员分享,可在线阅读,更多相关《算法分析作业.docx(10页珍藏版)》请在冰点文库上搜索。

算法分析作业.docx

算法分析作业

算法分析练习题

(一)

一、选择题

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归并排序D0/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、已知一个分治算法耗费的计算时间T(n),T(n)满足如下递归方程:

解得此递归方可得T(n)=O( nlogn)。

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

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

19、递归的二分查找算法在divide阶段所花的时间是O

(1),conquer阶段所花的时间是 T(n/2) ,算法的时间复杂度是O( log n)。

20、用动态规划算法计算矩阵连乘问题的最优值所花的时间是O(n3),子问题空间大小是 O(n2) 。

21、一个算法的优劣可以用(时间复杂度)与(空间复杂度)与来衡量。

22、直接或间接地调用自身的算法称为(递归算法)。

23、记号在算法复杂性的表示法中表示(渐进确界或紧致界)。

24、在分治法中,使子问题规模大致相等的做法是出自一种(平衡子问题)的思想。

25、动态规划算法适用于解(具有某种最优性质)问题。

26、最优子结构性质的含义是(问题的最优解包含其子问题的最优解)。

27、按照符号O的定义O(f)+O(g)等于O(max{f(n),g(n)})。

28、二分搜索技术是运用(分治)策略的典型例子。

29、动态规划算法中,通常不同子问题的个数随问题规模呈(多项式)级增长。

30、(最优子结构性质)和(子问题重叠性质)是采用动态规划算法的两个基本要素。

三、算法填空

1.最大子段和:

动态规划算法

intMaxSum(intn,inta[])

{

intsum=0,b=0;速排序

template

voidQuickSort(Typea[],intp,intr)

{

if(p

intq=Partition(a,p,r);

QuickSort(a,p,q-1);

最长上升子序列问题】——提示:

此题可采用动态规划算法实现

对于给定的一个序列

我们可以得到一些递增上升的子序列

,这里

比如,对于序列(1,7,3,5,9,4,8),有它的一些上升子序列,如(1,7),(3,4,8)等等。

这些子序列中最长的长度是4,比如子序列(1,3,5,8)。

你的任务:

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

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

.

2.【Gray码构造问题】——提示:

此题可采用分治递归算法实现

问题描述:

“格雷码”是一个长度为

的序列,满足:

(a)每个元素都是长度为n比特的串

(b)序列中无相同元素

(c)连续的两个元素恰好只有1个比特不同

例如:

n=2时,格雷码为{00,01,11,10}。

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

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

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

3.现在有8位运动员要进行网球循环赛,要设计一个满足以下要求的比赛日程表:

(1)每个选手必须与其他选手各赛一次;

(2)每个选手一天只能赛一次;

(3)循环赛一共进行n–1天。

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

4.对于矩阵连乘所需最少数乘次数问题,其递归关系式为:

其中m[i,j]为计算矩阵连乘Ai…Aj所需的最少数乘次数,pi-1为矩阵Ai的行,

为矩阵Ai的列。

现有四个矩阵,其中各矩阵维数分别为:

A1

A2

A3

A4

5010

1040

4030

305

p0p1

p1p2

p2p3

p3p4

请根据以上的递归关系,计算出矩阵连乘积A1A2A3A4所需要的最少数乘次数。

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.规则证明:

O(f(n))+O(g(n))=O(max{f(n),g(n)})

8.给定已按升序排好序的n个元素a[0:

n-1],现要在这n个元素中找出一特定元素x,返回其在数组中的位置,如果未找到返回-1。

写出二分搜索的算法,并分析其时间复杂度。

9.利用分治算法写出合并排序的算法,并分析其时间复杂度

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2