好文档 - 专业文书写作范文服务资料分享网站

数据结构(本)形考作业4

天下 分享 时间: 加入收藏 我要投稿 点赞

数据结构(本)形考作业4

一、单项选择题(每小题2分,共40分)

题目1

对线性表进行二分查找时,要求线性表必须( )。 A.以顺序存储方式

B.以顺序存储方式,且数据元素有序 C.以链接存储方式,且数据元素有序 D.以链接存储方式 题目2

采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为( )。

A. (n+1)/2 B. n C. n/2 D. (n-1)/2 题目3

有一个长度为10的有序表,按折半查找对该表进行查找,在等概率情况下查找成功的平均比较次数为( )。

A. 31/10 B. 29/10 C. 26/10 D. 29/9 题目4

已知一个有序表为{11,22,33,44,55,66,77,88,99},则顺序查找元素55需要比较( )次。

A. 3 B. 6 C. 5 D. 4 题目5

有数据{53,30,37,12,45,24,96},从空二叉树开始逐个插入数据来形成二叉排序树,若希望高度最小,应该选择的序列是( )。

A. 45,24,53,12,37,96,30 B. 12,24,30,37,45,53,96 C. 37,24,12,30,53,45,96 D. 30,24,12,37,45,96,53 题目6

对于顺序存储的有序表{5,12,20,26,37,42,46,50,64},若采用折半查找,则查找元素26的比较次数是( )。

A. 6 B. 3 C. 4 D. 5 题目7

在所有的排序方法中,关键字比较的次数与记录初始排列秩序无关的是( )。

A. 直接插入排序 B. 直接选择排序 C. 冒泡排序 D. 希尔排序 题目8

从未排序序列中依次取出元素与已经排好序的序列中的元素作比较。将其放入已排序序列的正确的位置上,此方法称为( )。

A. 选择排序 B. 交换排序 C. 插入排序 D. 归并排序 题目9

依次将每两个相邻的有序表合并成一个有序表的排序方法称为( )。

A. 交换排序 B. 插入排序 C. 归并排序 D. 选择排序 题目10

当两个元素出现逆序的时候就交换位置,这种排序方法称为( )。

A. 交换排序 B. 插入排序 C. 选择排序 D. 归并排序 题目11

每次把待排序的区间划分为左、右两个子区间,其中左区间中记录的关键字均小于等于基准记录的关键字,右区间中记录的关键字均大于等于基准记录的关键字,这种排序称为( )。

A. 归并排序 B. 堆排序 C. 插入排序 D. 快速排序 题目12

一组记录的关键字序列为(46,20,30,79,56,38,40,84,90,110),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为( )。

A. 20,30,40,38,46,79,56,84,90,100 B. 30,20,40,38,46,84,56,79,90,100 C. 20,30 38,40,46,56,79,84,90,100 D. 40,20,30,38,46,56,79,84,90,110 题目13

在有序表{10,14,34,43,47,64,75,80,90}中,用折半查找法查找值80时,经( )次比较后查找成功。

A. 5 B. 2 C. 3

D. 4 题目14

对序列(49,38,65,97,76,13,47,50)采用直接插入排序法进行排序,要把第七个元素47插入到已排序中,为寻找插入的合适位置需要进行( )次元素间的比较。

A. 5 B. 6 C. 3 D. 4 题目15

排序方法中,从未排序序列中挑选元素,并将其依次放入已排序序列(初始为空)的一端的方法,称为( )排序。

A. 选择 B. 插入 C. 快速 D. 归并 题目16

一组记录的关键字序列为(26,59,36,18,20,25),利用堆排序的方法建立的初始小根堆为( )。

A. 26,59,36,18,20,25 B. 26,18,59,20,36,25 C. 18,20,36,59,26,25 D. 18,20,25,59,26,36 题目17

一组记录的关键字序列为(25,48,16,35,79,82,23,40,36,72),其中,含有5个长度为2的有序表,按归并排序的方法对该序列进行一趟归并后的结果为( )。

A. 16,25,48,35,79,82,23,36,40,72 B. 16,25,35,48,23,40,79,82,36,72 C. 16,25,35,48,79,23,36,40,82,72 D. 16,25,35,48,79,82,23,36,40,72 题目18

已知10个数据元素为(54,28,16,34,73,62,95,60,26,43),对该数列从小到大排序,经过一趟冒泡排序后的序列为( )。

A. 16,28,34,54,62,60,73,26,43,95 B. 28,16,34,54,62,73,60,26,43,95 C. 16,28,34,54,73,62,60,26,43,95 D. 28,16,34,54,62,60,73,26,43,95 题目19

一组记录的关键字序列为(46,79,56,38,40,84),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为( )。

A. 40,38,46,79,56,84 B. 38,40,46,56,79,84 C. 40,38,46,56,79,84 D. 40,38,46,84,56,79 题目20

一组记录的关键字序列为(80,57,41,39,46,47),利用堆排序(堆顶元素是最小元素)的方法建立的初始堆为( )。

A. 39,80,46,47,41,57 B. 39,47,46,80,41,57 C. 41,39,46,47,57,80 D. 39,46,41,57,80,47

二、程序填空题(每题10分,2题,共20分。请点击正确选项,然后拖拽至相应的方框上)

题目21

以下函数是二叉排序树的查找算法,若二叉树为空,则返回根结点的指针,否则,返回值是指向树结点的结构指针p(查找成功p指向查到的树结点,不成功p指向为NULL)完成程序中的空格

typedef struct Bnode { int key;

struct Bnode *left; struct Bnode *right; } Bnode;

Bnode *BSearch(Bnode *bt, int k)

/* bt用于接收二叉排序树的根结点的指针,k用以接收要查找的关键字*/ { Bnode *p; if(bt==NULL) return (bt); p=bt;

while(p->key!=k) { if(kkey) p=p->left;

else p=p->right; if(p==NULL) break; }

return(p; }

题目22

以下程序是折半插入排序的算法

设待排序的记录序列存放在a[1],…a[n]中,以a[0]作为辅助工作单元,程序是要把a[i] 插入到已经有序的序列a[1],…a[i-1]中。 void binsort (NODE a[ ],int n) { int x,i,j,s,k,m;

for (i=2;i<=n;i++) { a[0]=a[i]; x= a[i].key; s=1; j=i-1;

while (s<=j) { m=(s+j)/2

if( x

s=m+1 }

for ( k=i-1;k>=j+1;k- -) a[k+1]=a[k]; a[j+1]=a[0]; } }

三、综合题(每小题8分,共40分)

题目23

(1)设查找表为(1,10,11,14,23,27,29,55,68) ,画出对上述查找表进行折半查找所对应的判定树,为了成功查找到元素14,需要依次与元素回答进行比较。

A.23,10,1,14 B.23,29,27,14 C.23,10,11,14 D.23,29,55,14

(2)在等概率条件下,成功查找的平均比较次数为回答。

A.24/9 B.25/9 C.3 D.2.5 题目24

(1)一组记录的关键字序列为(47,80,57,39,41,46),利用堆排序的方法建立的初始堆为回答(堆顶元素是最小元素,采用树的形式建堆)。

A.39,41,57,80,47,46 B.39,41,46,80,47,57 C.39,47,46,80,41,57 D.39,41,57,80,46,47

(2)输出堆顶元素后,调整后的堆为回答。

A.41,47,46,80,57 B.41,57,46,80,47 C.41,57,80,47,46 D.41,80,46,47,57 题目25

(1)对关键字序列(56,51,71,54,46,106),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为回答;

A. 46,51,56,54,71,106 B. 56,51,54,46,71,106 C. 46,51,54,56,71,106

D. 56,51,46,54,71,106

(2)一组记录的关键字序列为( 60,47,80,57, 39,41,46,30),利用归并排序的方法,经过(2,2)归并的结果序列为回答。.

A.(30, 57, 60, 80,47,39,41,46 ) B.(47, 60, 57, 80, 30,39,41,46 ) C.(41, 57, 60, 80, 30,39,47,46 ) D.(47, 57, 60, 80, 30,39,41,46 ) 题目26

(1)对关键字序列(36,69,46,28,30,74)采用快速排序,以第一个关键字为分割元素,经过一次划分后的结果序列为回答

A.30,28,46,36,69,74 B.28,30,36,46,69,74 C.28,30,46,36,69,74 D.30,28,36,46,69,74

(2)用冒泡法对上述序列排序,经两趟冒泡的结果序列为回答。

A. 36,28,30,46,69,74 B. 36,46,28,20,69,74 C. 38,36,30,46,69,74 D.28,36,,30,46,69,74 题目27

(1)一组记录的关键字序列为{45,40,65,43,35,95}写出利用快速排序的方法,以第一个记录为基准得到的一趟划分的结果为回答;

A. 35 40 65 45 35 95 B. 35 40 65 43 45 95 C. 35 40 43 45 65 95 D. 35 40 45 43 65 95

(2)对上述序列 利用直接插入排序,逐次插入过程中,共进行了回答次元素间的比较。

A.8 B.11 C.9 D.10

数据结构(本)形考作业4

数据结构(本)形考作业4一、单项选择题(每小题2分,共40分)题目1对线性表进行二分查找时,要求线性表必须()。A.以顺序存储方式B.以顺序存储方式,且数据元素有序C.以链接存储方式,且数据元素有序D.以链接存储方式题目2采用顺序查找方法查找长度为n的线性表时
推荐度:
点击下载文档文档为doc格式
2osp819opu7wp9920czo7b3ef97x1a0100p
领取福利

微信扫码领取福利

微信扫码分享