以下程序是快速排序的算法
设待排序的记录序列存放在a[start],…a[end]中,按记录的关键字进行快速排序,先进行一次划分,再分别进行递归调用。
void quicksort ( NODE a[ ], int start ,
答案是:正确选择
(1) C. i++
(2) C. i++
(3) A. a[j]=a[i]
(4) D. j--
(5) B. (a, i+1,end)
以下函数为直接选择排序算法,对a[1],a[2],…a[n]中的记录进行直接选择排序。
typedef struct
{ int key;
……
}NODE;
void selsort(NODE a[],int n)
答案是:正确选择
(1) E. n-1
(2) A. n
(3) C. k=j
(4) B. a[i]=a[k]
(5) D. a[k]=temp
以下冒泡法程序对存放在a[1],a[2],……,a[n]中的序列进行排序,其中n是元素个数,要求按升序排列。
void bsort (NODE a[ ], int n)
{ NODE temp;
int i,j,flag;
答案是:正确选择
(1) B. j<=n-1
(2) E. i<=n-j
(3) A. a[i]=a[i+1]
(4) C. a[i+1]=temp
(5) D. 当某趟冒泡中没有出现交换则已排好序结束循环
以下程序是折半插入排序的算法
设待排序的记录序列存放在a[1],…a[n]中,以a[0]作为辅助工作单元,程序是要把a[i] 插入到已经有序的序列a[1],…a[i-1]中。
答案是:正确选择
(1) D. n
(2) A. (s+j)/2
(3) B. j=m-1
(4) E. s=m+1
(5) C. a[k+1]
以下直接插入排序算法对存放在a[0],a[1],···,a[n-1]中,长度为n的记录序列按关键字key由小到大排序。
void disort (NODE a[ ], int n)
{ int i,j;
NODE temp
答案是:正确选择
(1) B. j>=0
(2) D. a[j]
(3) A. j--
(4) C. temp
(1)对关键字序列(56,51,71,54,46,106),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为( )。
A. 46,51,56,54,71,106
答案是:(1)C. 46,51,54,56,71,106
(2)D. 47,57,60,80,30,39,41,46
(1)一组记录的关键字序列为(42,37,62,40,32,92),利用快速排序算法,以第一个关键字为分割元素,经过一次划分后结果为( )。
A. 37,32,40,42,62,92 &
答案是:(1)B. 32,37,40,42,62,92
(2)C. 16,42,32,52,82,67,57,102
(1)一组记录的关键字序列为(47,80,57,39,41,46),利用堆排序的方法建立的初始堆为( )(堆顶元素是最小元素,采用树的形式建堆)。
A. 39,41,57,80,47,46
答案是:(1) B. 39,41,46,80,47,57
(2)A. 41,47,46,80,57
(1)对关键字序列(36,69,46,28,30,74)采用快速排序,以第一个关键字为分割元素,经过一次划分后的结果序列为( )。
A. 30,28,46,36,69,74 B. 28,30,36
答案是:(1)D. 30,28,36,46,69,74
(2)A. 36,28,30,46,69,74
(1)一组记录的关键字序列为(45,40,65,43,35,95),利用快速排序的方法,以第一个记录为基准得到的一趟划分的结果为( )。
A. 35,40,65,45,35,95
B. 35,40,65,43,45,95
C. 35,
答案是:(1)C. 35,40,43,45,65,95
(2)D. 10
在归并排序中,在第3趟归并中,是把长度为4的有序表归并为长度为8的有序表。
答案是:对
冒泡排序是一种比较简单的插入排序方法。
答案是:×
在对10个记录的序列(14,30,10,7,22,13,66,85,47,58)进行直接插入排序时,当把第6个记录13 插入到有序表时,为寻找插入位置,需比较3次。
答案是:×
序列15,13,16,14,19,17,采用冒泡排序算法(升序),经一趟冒泡后,结果序列是13,15,14,16,17,19。
答案是:对
待排序的序列为8,3,4,1,2,5,9,采用直接选择排序算法,当进行了两趟选择后,结果序列为1,2,8,3,4,5,9。
答案是:×
序列3,1,7,18,6,9,13,12经一趟归并排序的结果为1,3,7,18,6,9,13,12。
答案是:×
18个元素进行冒泡法排序,通常需要进行17趟冒泡 ,其中第10趟冒泡共需要进行8次元素间的比较。
答案是:对
n个元素进行冒泡法排序,通常第j趟冒泡要进行n-j次元素间的比较。
答案是:对
对16个元素的序列用冒泡排法进行排序,通常需要进行15趟冒泡。
答案是:对
n个元素进行冒泡法排序,通常需要进行n-1趟冒泡。
答案是:对
一组记录的关键字序列为(60,47,80,57,39,41,46,30),利用归并排序的方法,对该序列进行(1,1) 归并,即第一趟归并后的结果为( )。
A. 47,57,60,80,30,39,41,46
B. 30,39,41,4
答案是:D
一组记录的关键字序列为(25,48,16,35,79,82,23,40,36,72),其中,含有5个长度为2的有序表,按归并排序的方法对该序列进行一趟归并后的结果为( )。
A. 16,25,48,35,79,82,23,36,40,72
答案是:B
一组记录的关键字序列为(46,79,56,38,40,84),利用堆排序的方法建立的初始堆为( )。
A. 79,46,56,38,40,84
B. 84,79,56,38,40,46
C. 84,79,56,46,40,38
D.
答案是:B
一组记录的关键字序列为(80,57,41,39,46,47),利用堆排序(堆顶元素是最小元素)的方法建立的初始堆为( )。
A. 39,47,46,80,41,57
B. 41,39,46,47,57,80
C. 39,46,41,5
答案是:C
一组记录的关键字序列为(26,59,36,18,20,25),利用堆排序的方法建立的初始小根堆为( )。
A. 18,20,36,59,26,25
B. 18,20,25,59,26,36
C. 26,18,59,20,36,25
答案是:B
一组记录的关键字序列为(46,20,30,79,56,38,40,84,90,110),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为( )。
A. 40,20,30,38,46,56,79,84,90,110
B. 30
答案是:A
一组记录的关键字序列为(46,79,56,38,40,84),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为( )。
A. 38,40,46,56,79,84
B. 40,38,46,84,56,79
C. 40,38,
答案是:C
已知10个数据元素为(54,28,16,34,73,62,95,60,26,43),对该数列从小到大排序,经过一趟冒泡排序后的序列为( )。
A. 16,28,34,54,73,62,60,26,43,95
B. 28,16,34,54
答案是:B
18个元素进行冒泡法排序,通常需要进行17趟冒泡 ,其中第10趟冒泡共需要进行( )次元素间的比较。
A. 7 B. 8
C. 9 D. 10
答案是:B
对序列(49,38,65,97,76,13,47,50)采用直接插入排序法进行排序,要把第七个元素47插入到已排序中,为寻找插入的合适位置需要进行( )次元素间的比较。
A. 3 B. 4
C. 5 D. 6
答案是:C
对具有n个元素的任意序列采用插入排序法进行排序,排序趟数为( )。
A. n-1 B. n
C. n+1 D. log2n
答案是:A
设已有m个元素有序,在未排好序的序列中挑选第m+1个元素,并且只经过一次元素的交换就使第m+1个元素排序到位,该方法是( )。
A. 折半插入排序 B. 冒泡排序
C. 归并排序 D. 直接选择排序
答案是:D
每次把待排序的区间划分为左、右两个子区间,其中左区间中记录的关键字均小于等于基准记录的关键字,右区间中记录的关键字均大于等于基准记录的关键字,这种排序称为( )。
A. 插入排序 B. 快速排序
C. 堆排序 D. 归并排序
答案是:B
在下列几种排序方法中,平均情况下占用内存量最大的是( )方法。
A. 插入排序 B. 选择排序
C. 快速排序 D. 归并排序
答案是:D
在待排序元素基本有序的情况下,效率最高的排序方法是( )。
A. 插入排序 B. 快速排序
C. 堆排序 D. 归并排序
答案是:A
在下列排序方法中,关键字比较的次数与记录初始排列秩序无关的是( )。
A. 冒泡排序 B. 希尔排序
C. 选择排序 D. 插入排序
答案是:C
从未排序序列中挑选元素,并将其放入已排序序列的一端,此方法称为( )排序。
A. 插入排序 B. 交换排序
C. 选择排序 D. 归并排序
答案是:C
当两个元素出现逆序的时候就交换位置,这种排序方法称为( )。
A. 插入排序 B. 交换排序
C. 选择排序 D. 归并排序
答案是:B
依次将每两个相邻的有序表合并成一个有序表的排序方法称为( )。
A. 插入排序 B. 交换排序
C. 选择排序 D. 归并排序
答案是:D
从未排序序列中依次取出元素与已经排好序的序列中的元素作比较。将其放入已排序序列的正确的位置上,此方法称为( )。
A. 插入排序 B. 交换排序
C. 选择排序 D. 归并排序
答案是:A
折半查找方法运用在升序序列比降序序列效率更高,所以降序序列最好先转换为升序序列。
答案是:×
根据无序序列构造二叉排序树的过程,也是对无序序列排序的过程。
答案是:对
将10个元素散列到10000个单元的哈希表中,仍然可能会产生冲突
答案是:对
二叉排序树在呈单支二叉树时,查找效率最低
答案是:对
二叉树为二叉排序树的充分必要条件是,任一个分支结点的值都大于其左孩子的值,小于右孩子的值。
答案是:×
在有序顺序存储的线性表中查找一个元素,用折半查找速度一定比顺序查找快
答案是:×
一个好的哈希函数,应该使哈希地址均匀地分布在整个哈希表的地址区间中,完全避免冲突的发生。
答案是:×
分块查找分为两个步骤:第一步是要对索引表进行查找;第二步是在块中查找。这两步查找都可以采用折半查找或者顺序查找方法。
答案是:×
按照一定规则,在二叉排序树上插入、删除结点,仍能保持二叉排序树的性质。
答案是:对
理想情况下,哈希表查找等概率查找成功的时间复杂度是O(1)。
答案是:对
二叉排序树的建立过程上实际上是从空树逐次插入的过程。
答案是:对
折半查找的前提条件是,查找表中记录相应的关键字值必须有序或者部分有序。
答案是:×
顺序查找是一种最简单的查找方法。
答案是:×
在一个查找表中,能够唯一地确定一个记录的关键字称为主关键字。
答案是:对
在顺序查找、折半查找、哈希表查找3种方法中,平均查找长度与结点个数n无关的查找方法是折半查找。
答案是:×
二叉排序树的查找效率与二叉树的( )有关。
A.高度 B.结点个数 C.树形 D.结点的位置
答案是:C
一组记录的关键字是{19,14,23,1,68,20,84,27,55,11,10,79},用链接地址法构造散列表,散列函数为H(key)=key mod 13,散列地址为1的链中有( )个记录。
A.1 B.2 C.3
答案是:D
哈希表的平均查找长度( )
A.与处理冲突的方法有关,与表的长度无关
B.与处理冲突的方法无关,与表的长度有关
C.与处理冲突的方法有关,与表的长度有关
D.与处理冲突的方法无关,与表的长度无关
答案是:A
采用折半查找方法查找长度为n的线性表时,每个元素的平均查找长度为( )。+++++++
A.n2 B.nlog2n C.n D.log2n
答案是:D
设哈希表长m=14,哈希函数H(key)=key mod 11。表中已有4个结点:addr(15)=4; addr(38)=5; addr(61)=6; addr(84)=7。如用线性探测处理冲突,关键字为49的结点的地址是( )。
答案是:A
在最坏情况下,折半查找与二叉排序树查找性能比较,( )
A. 完全相同 B.折半查找性能好
C. 二叉排序树查找性能好 D.不能确定
答案是:B
哈希函数有一个共同的性质,即函数值应当以( )取其值域的每个值。
A.最大概率 B.最小概率
C.平均概率 D.同等概率
答案是:D
对于一个线性表,若要求既能进行较快地插入和删除,又要求存储结构能够反映数据元素之间的逻辑关系,则应该( )。+++++
A.以顺序存储方式 B.以链接存储方式
C.以索引存储方式 D.以散列存储方式
答案是:B
采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为( )。
A.n B.n/2
C.(n+1)/2 D.(n-1)/2
答案是:C
有数据{53,30,37,12,45,24,96},从空二叉树开始逐个插入数据来形成二叉排序树,若希望高度最小,应该选择的序列是( )。
A.45,24,53,12,37,96,30 B.37,24,12,30,53,4
答案是:B
顺序查找法与折半查找法对存储结构的要求是( )。
A.顺序查找与折半查找均只适用于顺序表
B.顺序查找与折半查找均既适用于顺序表,也适用于链表
C.顺序查找只是适用于顺序表
D.折半查找适用于顺序表
答案是:D
已知一个有序表为{11,22,33,44,55,66,77,88,99},则顺序查找元素55需要比较( )次。
A.3 B.4 C.5 D.6
答案是:C
有一个长度为12的有序表,按折半查找对该表进行查找,在等概率情况下查找成功的平均比较次数为( )。+++++
A.37/12 B.39/12 C.41/12 D.35/12
答案是:A
对二叉排序树进行( )遍历,可以使遍历所得到的序列是有序序列。
A.按层次 B.后序 C.中序 D.前序
答案是:C
在有序表{1,3,8,13,33,42,46,63,76,78,86,97,100}中,用折半查找值86时,经( )次比较后查找成功。
A.3 B.4 C.6 D.8
答案是:B
顺序查找方法适合于存储结构为( )的线性表。
A.散列存储 B.索引存储
C.散列存储或索引存储 D.顺序存储或链接存储
答案是:D
对于一个无向图,假定采用邻接矩阵表示,试分别写出从顶点0出发按深度优先搜索遍历得到的顶点序列。
注:每一种序列都是唯一的,因为都是在存储结构上得到的。
A.0,2,3,4,5,1,6
B.0,2,3,5,1,6,4
C.0,
答案是:C. 0,2,3,5,6,1,4
已知图G的邻接矩阵如下所示:
从顶点1出发的广度优先搜索序列为( )。
A.1;2,3, 4;5;6
B.2;1,3,5;4;6
C.3;1,2,4;5;6
D.4;2,3,6;1;5
答案是:A. 1;2,3,4;5;6
采用邻接表存储的图的广度优先遍历算法类似于二叉树的按层次遍历。
答案是:对
一个无向连通图的生成树是含有该连通图的全部顶点的极小连通子图。
答案是:对
任一个有向图的拓扑序列只有一个。
答案是:×
图G的某一最小生成树的代价一定小于其他生成树的代价。
答案是:×
有向图用邻接矩阵表示后,顶点i的出度等于第i行中非0且非无穷的元素个数。
答案是:对
一个有向图的邻接表和逆邻接表中的节点个数一定相等
答案是:对
对任意一个图从它的某个顶点出发进行一次深度优先或广度优先搜索遍历可访问到该图的每个顶点。
答案是:×
图的强连通分量是无向图的极大连通子图。
答案是:×
图的连通分量是无向图的极小连通子图。
答案是:×
用邻接矩阵存储图的时候,占用空间大小不但与图的结点个数有关还与图的边数有关。
答案是:×
有向图的邻接矩阵一定是非对称的。
答案是:×
无向图的邻接矩阵一定是对称的。
答案是:对
若连通图上各边权值均不相同,则该图的最小生成树是惟一的
答案是:对
具有n个顶点的无向图采用邻接矩阵表示,图中的边数等于邻接矩阵中非零元素之和的一半。
答案是:对
图的广度优先搜索序列是惟一的。
答案是:×
AOV网拓扑排序的结果是惟一的。
答案是:×
若一个有向图的邻接矩阵中对角线以下元素均为零,则该图的拓扑有序序列必定存
答案是:对
有n个结点的无向图中,若边数大于n-1,则该图是连通的。
答案是:×
对连通图进行深度优先遍历可以访问到该图中的所有顶点。
答案是:对
图的生成树是惟一的。
答案是:×
从源点到终点的最短路径是唯一的。
答案是:×
AOV网是一个带权的有向图。
答案是:×
存储图的邻接矩阵中,邻接矩阵的大小不但与图的顶点个数有关,而且与图的边数也有关
答案是:×
邻接表只能用于存储有向图,而邻接矩阵则可存储有向图和无向图。
答案是:×
图的深度优先搜索序列和广度优先搜索序列不是惟一的。
答案是:对
已知一个有向图的邻接矩阵表示,要删除所有从第i个结点发出的边,应( )。
A. 将邻接矩阵的第i行删除
B. 将邻接矩阵的第i行元素全部置为0
C. 将邻接矩阵的第i列删除
D. 将邻接矩阵的第
答案是:B
设G1=(V1,E1)和G2=(V2,E2)为两个图,如果V1V2,E1E2则称( )。
A. G1是G2的子图
B. G2是G1的子图
C. G1是G2的连通分量
D. G2是G1的连通分量
答案是:A
在有向图的逆邻接表中,每个顶点邻接表链接着该顶点所有( )邻接点。
A. 入边
B. 出边
C. 入边和出边
D. 不是出边也不是入边
答案是:A
在无向图中定义顶点vi与vj之间的路径为从vi到vj的一个( )。
A. 顶点序列
B. 边序列
C. 权值总和
D. 边的条数
答案是:A
已知一个图如下图所示,若从顶点a出发按广度优先搜索法进行遍历,则可能得到的一种顶点序列为( )。
A. acfdeb
B. acfebd
C. acbdef
D. abecdf
答案是:D
已知无向图G的顶点数为n,边数为e,其邻接表表示的空间复杂度为( )。
A. O(n2)
B. O(n*e)
C. O(n+e)
D. O(2n)
答案是:C
采用邻接表存储的图,其深度优先遍历类似于二叉树的( )。
A. 中序遍历
B. 先序遍历
C. 后序遍历
D. 按层次遍历
答案是:B
下面( )可以判断出一个有向图中是否有环(回路)。
A. 广度优先遍历
B. 拓扑排序
C. 求最短路径
D. 求关键路径
答案是:B
关键路径是事件结点网络中( )。
A. 从源点到汇点的最长路径
B. 从源点到汇点的最短路径
C. 最长的回路
D. 最短的回路
答案是:A
14.已知如图1所示的一个图,若从顶点a出发,按深度优先搜索法进行遍历,则可能得到的一种顶点序列为( )。
A.abecdf
B.acfebd
C.aedfcb
D.aebcfd
答案是:C
n个顶点的强连通图中至少含有( )。
A.n—l条有向边
B.n条有向边
C.n(n—1)/2条有向边
D.n(n一1)条有向边
答案是:B
在一个无向图中,若两顶点之间的路径长度为k,则该路径上的顶点数为( )。
难度:+
A.k
B.k+1
C.k+2
D.2k
答案是:B
G是一个非连通无向图,共28条边,则该图至少有( )个顶点。
A. 6
B. 7
C. 8
D. 9
答案是:D
图的深度优先遍历算法类似于二叉树的( )遍历。
A.先序
B.中序
C.后序
D.层次
答案是:A
无向图的邻接矩阵是一个( )。
A.对称矩阵
B.零矩阵
C.上三角矩阵
D.对角矩阵
答案是:A
下列有关图遍历的说法不正确的是( )。
A.连通图的深度优先搜索是一个递归过程
B.图的广度优先搜索中邻接点的寻找具有“先进先出”的特征
C.非连通图不能用深度优先搜索法
D.图的遍历要求每一顶点仅被访问一次
答案是:C
如果从无向图的任一顶点出发进行一次深度优先搜索即可访问所有顶点,
则该图一定是( )。
A.完全图
B.连通图
C.有回路
一棵树
答案是:B
邻接表是图的一种( )。
A.顺序存储结构
B.链式存储结构
C.索引存储结构
D.散列存储结构
答案是:B
在有向图的邻接表中,每个顶点邻接表链接着该顶点所有( )邻接点。
A.入边
B.出边
C.入边和出边
D
答案是:B
对于一个具有n个顶点和e条边的无向图,若采用邻接表表示,则所有顶点邻接表中的结点总数为( )。
A.n
B.e
C.2n
D.2e
答案是:D
一个具有n个顶点的有向完全图包含( )条边。
A.n(n1)
B.n(n1)
C. n(n1)/2
D. n(n1)/2
答案是:A
一个具有n个顶点的无向完全图包含( )条边。
A.n(n1)
B.n(n1)
C. n(n1)/2
D. n(n1)/2
答案是:C
目前为:
1/3
页
首页 上页 下页 尾页