算法基础样题06

  • 格式:doc
  • 大小:431.00 KB
  • 文档页数:10

算法基础样题一、单项选择题(本大题共10小题,每小题3分,共30分)1.1、对整数序列:6,5,9,3,7,1作从小到大排序,经排序算法一次处理后,该序列变成:1,5,9,3,7,6则在以下四种供选择的排序方法中,能实现这个要求的排序方法是A、选择排序B、堆排序C、插入排序D、快速排序1.2、已知一个有向图如下所示,则从顶点A出发进行深度优先遍历,不可能得到的DFS序列为A、A D E B F C .B、A C D E B FC、A E C D B FD、A D E B C F1.3、不可能生成下图所示二叉排序树(二叉检索树)的输入序列是A、8 2 13 10 15 8B、8 13 2 15 10C、8 13 10 2 15 2 13D、8 2 10 13 1510 151.4、迭代算法求方程的根时,为了防止方程无解,宜采用的措施是A、选择速度更快的计算机B、降低方程根的精度要求C、在程序中增加对迭代次数给予检测和限制的代码D、自动选择新的初始根1.5、快速排序算法是属于哪一类算法?A、试探法B、迭代法C、贪婪法D、分治法1.6、在执行操作过程中,将路径上所遇到的结点都直接挂到根结点之下,称作路径压缩,该操作是A、UnionB、FindC、InsertD、Delete1.7、如求最短路径的Dijkstra方法、求最小生成树的Prim方法和Kruskal方法等。

这类算法以局部优良为选择的依据,在每一步直接根据当前状态,确定下一步骤,而不顾及未来的整体情况,该类算法通称A、试探法B、贪婪法C、迭代法D、递推法1.8、下列排序算法中,哪一个排序算法在每趟排序后不一定能选出一个元素放到其排序好的序列的正确位置上。

A、冒泡排序B、堆排序C、直接插入排序D、选择排序1.9、在一棵具有n个结点的A VL树上,完成插入、删除等操作,一般情况的最低时间上限是A、O(n2)B、O(n)C、O(nlbn)D、O(lb n)1.10、若一个栈的进栈元素序列是1、2、3、4、5,出栈序列的第一个元素是5。

则第2个出栈元素是A、3B、4C、2D、不能确定1.1、以下序列中可以是一个堆的是A、9、5、4、2、7、1、3B、9、7、4、2、5、3、1C、9、7、4、2、3、5、1D、9、4、7、5、2、3、11.2、已知一个有向图如下所示,则从顶点A出发进行深度优先遍历,不可能得到的DFS序列为E、A D B E F C .F、A C D B E FG、 A B C D E FH、 A D B E C F1.3、不可能生成下图所示二叉排序树(二叉检索树)的输入序列是A、7 2 12 10 15 7B、7 12 2 15 10C、7 12 10 2 15 2 12D、7 2 10 12 1510 151.4、若希望尽可能快地对数值大小差异很大的整数数组进行稳定的排序,则在以下四种供选择的排序方法中,能实现这个要求的排序方法是A、堆排序B、快速排序C、基数排序D、归并排序1.5、一个只利用模式本身的性质,实现无回溯匹配的算法是A、试探法B、KMP算法C、BM算法D、逆向匹配算法1.6、在执行操作过程中,将路径上所遇到的结点都直接挂到根结点之下,称作路径压缩,该操作是A、UnionB、FindC、InsertD、Delete1.7、如求最短路径的Dijkstra方法、求最小生成树的Prim方法和Kruskal方法等。

这类算法以局部优良为选择的依据,在每一步直接根据当前状态,确定下一步骤,而不顾及未来的整体情况,该类算法通称A 、试探法B 、贪婪法C 、迭代法D 、递推法1.8、著名的Ackerman 函数定义如下:n+1, 当m = 0时akm(m, n) = akm(m-1, 1), 当m ≠0, n = 0时akm(m-1, akm(m, n-1)), 当 m ≠0, n ≠ 0时根据上述递归定义,akm(1, 1)的值等于A 、2B 、6C 、1D 、31.9、在一棵具有n 个结点的A VL 树上,完成插入、删除等操作,一般情况的最低时间上限是A 、O(n2)B 、O(n)C 、O(nlbn)D 、O(lb n)1.10、一个能大大减少索引项数量,在数据表上插入与删除操作又很少影响索引表存储结构的是A 、动态索引结构B 、稀疏索引结构C 、线性索引结构D 、索引顺序结构1.1、对整数序列5, 4, 9, 3, 6, 2,作从小到大的堆排序,堆排序算法首先对该序列构造初始堆,所构造的初始堆序列是A 、9、6、5、4、3、2B 、9、6、5、3、4、2C 、2、3、4、5、6、9D 、2、3、5、4、6、91.2、已知一个有向图如下所示,则从顶点A 出发进行深度优先遍历,不可能得到的DFS序列为I 、 A D B E C F . J 、 A D E C F B K 、 A D E F C B L 、 A D E B C F1.3、不可能生成下图所示二叉排序树(二叉检索树)的输入序列是A 、7 2 3 1 9 7B 、7 2 9 3 1C 、7 9 2 1 3 9D 、7 9 3 1 21 31.4、为实现递归,系统要为每次递归调用分配一个活动记录。

通常,在活动记录中包括的主要内容除有实参、局部变量外,至少还要有A 、递归调用队列B 、递归函数的返回值C 、递归调用的返回地址D 、递归调用的工作栈1.5、把复杂问题分解出一系列子问题,为不重复求相同子问题,子问题的解答存于一个数组中,待再次解同样子问题时,就从数组中取出该子问题的解答,这类算法通称A 、试探法B 、迭代法C 、贪婪法D 、动态规划法1.6、在解“Hanoi”塔问题的算法中,将搬n张金片分为搬上面的n-1张金片和搬最下面的一张金片,从而将n张金片的移动转换成更少张数金片的移动。

这类将大问题分解成若干子问题,然后分别解决各个子问题得到大问题的求解方法,统称A、试探法B、迭代法C、分治法D、贪婪法1.7、求最短路径的Dijkstra方法、求最小生成树的Prim方法和Kruskal方法等。

这类算法以局部优良为选择的依据,在每一步直接根据当前状态,确定下一步骤,而不顾及未来的整体情况,该类算法通称A、试探法B、贪婪法C、迭代法D、递推法1.8、设有递归函数p()定义如下,则函数调用p(4)的值是int p(int t){ if (t == 1) return 1;return 1 + t*p(t-1);}A、7B、9C、31D、411.9、对数据表的数据量大,数据增删变化又特别频繁的,宜采用的索引结构是A、动态索引结构B、非线性索引结构C、线性索引结构D、动态多路索引结构1.10、5路搜索树的高度为3,有最多结点数的搜索树是除叶结点之外,每个结点都有5个子树,故高度为3的一棵5路搜索树中,最多关键码数是A、624B、626C、625D、25二、简答题(本大题共5小题,每小题4分,共20分)2.1、试写出以下序列的冒泡排序过程。

7,3,8,9,22.2、在回溯算法中,为了确保算法能够终止,回溯调整时,必须保证的要求是什么?2.3、对关键字序列(48、30、63、54、58、27、37)进行SHELL排序,设第一次取间隔g为3,则进行第一趟处理之后得到的结果为2.4、若待排序的整数序列是已排好序的,用插入排序、选择排序和冒泡排序三种排序算法对该序列作排序处理,则能最快结束排序的排序方法是哪一种排序方法?简单指出理由。

_2.5、设4路搜索树的高度为3,有最多结点数的搜索树是除叶结点之外,每个结点都有4个子树。

这棵搜索树最多结点数是多少?2.1、在m路B树上查找一个给定键值k的记录的地址时,若当前结点有n个键值,它的键值序列是k1,k2,…,k n。

查找时需考虑哪4种情况?2.2、在回溯算法中,为了确保算法能够终止,回溯调整时,必须保证的要求是什么?2.3、对关键字序列(32、30、53、23、48、22)进行基数排序,需作两趟处理。

其中进行第一趟处理之后得到的结果为。

2.4、设二叉树的后序为3、4、7、2、5;中序为3、4、7、5、2。

试画出这棵二叉树。

2.5、设5路搜索树的高度为3,有最多结点数的搜索树是除叶结点之外,每个结点都有5个子树。

这棵搜索树最多结点数是多少?2.1、简述在二叉检索树上查找关键字值为x结点的查找过程。

2.2、集合S上定义的等价关系R,必须满足的条件是。

2.3、对关键字序列(32、30、53、23、48、22)进行基数排序,需作两趟处理。

其中进行第一趟处理之后得到的结果为。

2.4、设二叉树的后序为6、7、2、3、5;中序为7、6、2、5、3。

试画出这棵二叉树。

2.5、写出使用归并排序法对下列数据进行从小到大排序的前两步的中间过程。

{73,45,63,13,64,35,96,57,39,79,61,15}三、算法理解题(本大题共5小题,每小题6分,共30分)3.1、对关键字序列(29、20、52、61、25、35、27、28)进行从小到大的堆排序,试给出排序时建立的初始堆。

3.2、设输入记录的关键码依次为:8,14,3,7,16,5,6,构造一棵3阶B树。

试画出按所给出的关键码顺序输入记录,从空的B树开始,构造一棵3阶B树的构造过程。

3.3、输入一组记录构造一棵A VL树。

设输入记录的关键码依次为:12,9,3,7,4,5试画出按所给出的关键码顺序输入记录,从空A VL树开始,构造一棵A VL树的构造过程。

3.1、对关键字序列(47、20、52、61、25、15、27、28)进行从小到大的堆排序,试给出排序时建立的初始堆。

3.2、设输入记录的关键码依次为:7,14,3,8,17,5,6,构造一棵3阶B树。

试画出按所给出的关键码顺序输入记录,从空的B树开始,构造一棵3阶B树的构造过程。

3.3、输入一组记录构造一棵A VL树。

设输入记录的关键码依次为:11,8,2,7,3,4试画出按所给出的关键码顺序输入记录,从空A VL树开始,构造一棵A VL树的构造过程。

3.1、对关键字序列(47、20、52、61、25、15)进行快速排序,并设在快速排序过程中作分划的基准数为分划序列的第一个数、中间数和末位置数,这三个数中的中间大小的哪一个数作为分划的基准数。

算法在确定基准数的同时,已将最小的数放于数列的最前端,最大的数放在数列的最后端。

划分开始时,又先将基准数存于划分序列最后(数例最后第二个位置)。

这样,进行一次分划后,得到的关键字序列为。

3.2、设输入记录的关键码依次为:8,15,3,7,19,2,6,构造一棵3阶B树。

试画出按所给出的关键码顺序输入记录,从空的B树开始,构造一棵3阶B树的构造过程。

3.3、输入一组记录构造一棵A VL树。