算法练习题-1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、单项选择题
1. 当输入规模为n时,下列算法渐进复杂性中最低.的是()。
A. 5n
B. n2
C. 2n2
D. n!
2.二分搜索算法是利用()实现的算法。
A、分治策略
B、动态规划法
C、贪心法
D、回溯法
4. 回溯法搜索状态空间树是按照( C )的顺序。
A.中序遍历 B.广度优先遍历 C.深度优先遍历 D.层次优先遍历
6.下列算法中通常以自底向上的方式求解最优解的是( B )。A、备忘录法B、动态规划法C、贪心法D、回溯法7.下列算法中通常以深度优先方式系统搜索问题解的是( D )。
A、备忘录法
B、动态规划法
C、贪心法
D、回溯法
8.快速排序算法是利用( A )实现的算法。
A.分治策略 B.动态规划法 C.贪心法 D.回溯法
二、填空题
1. 通俗地讲,算法是指解决问题的。
2.出于“平衡子问题”的思想,通常分治法在分解原问题时,形成若干子问题,这些子问题的规模都大致相同。
三、简答题
1. 1.什么是算法?算法必须满足的五个特性是什么?
●有穷性:一个算法必须保证执行有限步之后结束;
●确切性:算法的每一步骤必须有确切的定义;
●输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入
是指算法本身定除了初始条件;
●输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出
的算法是毫无意义的;
●可行性:算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完
成
2.动态规划的四个步骤是什么?
●刻画最优解的结构特性. (一维,二维,三维数组)
●递归的定义最优解. (状态转移方程)
●以自底向上的方法来计算最优解.
●从计算得到的解来构造一个最优解.
1.什么是钢条切割问题?
用动态规划解决钢条切割问题时,它的最优子结构(问题)是什么? 简述钢条切割问题的动态规划算法.
并求解以下实例。
2.什么是矩阵链乘法问题?
用动态规划解决矩阵链乘法问题时,它的最优子结构(问题)是什么? 简述矩阵链乘法问题的动态规划算法.
并求解以下实例。
3、什么是最长公共子序列问题?
用动态规划解决矩阵链乘法问题时,它的最优子结构(问题)是什么?
简述矩阵链乘法问题的动态规划算法.
并求解以下实例。
四、分析、计算题
1.考虑矩阵链乘法问题。设有3个矩阵A、B、C,它们的维数分别为2×3、3×4、4×3,试分别按((AB)C)、(A(BC))的计算顺序,给出它们的计算量(数乘次数)。
2.写出课本实例的钢条切割方案
3. 写出课本图15-5的最优括号化方案,并计算m[1,6],要求写出计算步骤。
4、有11个待安排的活动,它们具有下表所示的开始时间与结束
时间,如果以贪心算法求解这些活动的最优安排(即为活动安排问题:在所给的活动集合中选出最大的相容活动子集合),得到的最大相容活动子集合为活动({1,4,8,11} )。
5、给定关键字序列(13,24,37,90,53),构造AVL树。
给定关键字序列(5,3,4,7,6,8,2,1),构造AVL树。
14 13
12
11
10
9
8
7
6
5
4
f[i]
12 2
8
8
6
5
3
5
3
1
S[i]
11 10
9
8
7
6
5
4
3
2
1
i