排列.docx

上传人:b****5 文档编号:5690438 上传时间:2022-12-31 格式:DOCX 页数:11 大小:19.08KB
下载 相关 举报
排列.docx_第1页
第1页 / 共11页
排列.docx_第2页
第2页 / 共11页
排列.docx_第3页
第3页 / 共11页
排列.docx_第4页
第4页 / 共11页
排列.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

排列.docx

《排列.docx》由会员分享,可在线阅读,更多相关《排列.docx(11页珍藏版)》请在冰豆网上搜索。

排列.docx

排列

排列

一.选择题

1.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为

A.O

(1)

B.O(n)

C.O(1og2n)

D.O(n2)

2.设一组初始记录关键字序列(5,2,6,3,8),以第一个记录关键字5为基准进行一趟快速排序的结果为()。

(A)2,3,5,8,6

(B)3,2,5,8,6

(C)3,2,5,6,8

(D)2,3,6,5,8

3.设有n个待排序的记录关键字,则在堆排序中需要()个辅助记录单元。

(A)1

(B)n

(C)nlog2n

(D)n2

4.设一组初始关键字记录关键字为(20,15,14,18,21,36,40,10),则以20为基准记录的一趟快速排序结束后的结果为()。

(A)10,15,14,18,20,36,40,21

(B)10,15,14,18,20,40,36,21

(C)10,15,14,20,18,40,36,2l

(D)15,10,14,18,20,36,40,21

5.设二叉排序树中有n个结点,则在二叉排序树的平均平均查找长度为()。

(A)O

(1)

(B)O(log2n)

(C)

(D)O(n2)

6.设有5000个待排序的记录关键字,如果需要用最快的方法选出其中最小的10个记录关键字,则用下列()方法可以达到此目的。

(A)快速排序

(B)堆排序

(C)归并排序

(D)插入排序

7.下列四种排序中()的空间复杂度最大。

(A)插入排序

(B)冒泡排序

(C)堆排序

(D)归并排序

8.在二叉排序树中插入一个结点的时间复杂度为()。

(A)O

(1)

(B)O(n)

(C)O(log2n)

(D)O(n2)

9.设一组初始记录关键字序列为(345,253,674,924,627),则用基数排序需要进行()趟的分配和回收才能使得初始关键字序列变成有序序列。

(A)3

(B)4

(C)5

(D)8

10.下列四种排序中()的空间复杂度最大。

(A)快速排序

(B)冒泡排序

(C)希尔排序

(D)堆

 

11.设一组初始记录关键字序列为(50,40,95,20,15,70,60,45),则以增量d=4的一趟希尔排序结束后前4条记录关键字为()。

(A)40,50,20,95

(B)15,40,60,20

(C)15,20,40,45

(D)45,40,15,20

12.设一组初始记录关键字序列为(25,50,15,35,80,85,20,40,36,70),其中含有5个长度为2的有序子表,则用归并排序的方法对该记录关键字序列进行一趟归并后的结果为

(A)15,25,35,50,20,40,80,85,36,70

(B)15,25,35,50,80,20,85,40,70,36

(C)15,25,35,50,80,85,20,36,40,70

(D)15,25,35,50,80,20,36,40,70,85

13.设一组初始记录关键字序列为(45,80,55,40,42,85),则以第一个记录关键字45为基准而得到一趟快速排序的结果是()。

(A)40,42,45,55,80,83

(B)42,40,45,80,85,88

(C)42,40,45,55,80,85

(D)42,40,45,85,55,80

14.执行一趟快速排序能够得到的序列是()。

(A)[41,12,34,45,27]55[72,63]

(B)[45,34,12,41]55[72,63,27]

(C)[63,12,34,45,27]55[41,72]

(D)[12,27,45,41]55[34,63,72]

15.时间复杂度不受数据初始状态影响而恒为O(nlog2n)的是()。

(A)堆排序

(B)冒泡排序

(C)希尔排序

(D)快速排序

16.一趟排序结束后不一定能够选出一个元素放在其最终位置上的是()。

(A)堆排序

(B)冒泡排序

(C)快速排序

(D)希尔排序

17.二路归并排序的时间复杂度为()。

(A)O(n)

(B)O(n2)

(C)O(nlog2n)

(D)O(1og2n)

18.设二叉排序树上有n个结点,则在二叉排序树上查找结点的平均时间复杂度为()。

(A)O(n)

(B)O(n2)

(C)O(nlog2n)

(D)O(1og2n)

19.设一组初始记录关键字序列为(60,80,55,40,42,85),则以第一个关键字45为基准而得到的一趟快速排序结果是()。

(A)40,42,60,55,80,85

(B)42,45,55,60,85,80

(C)42,40,55,60,80,85

(D)42,40,60,85,55,80

 

20.()二叉排序树可以得到一个从小到大的有序序列。

(A)先序遍历

(B)中序遍历

(C)后序遍历

(D)层次遍历

21.在二叉排序树中插入一个关键字值的平均时间复杂度为()。

(A)O(n)

(B)O(1og2n)

(C)O(nlog2n)

(D)O(n2)

22.利用直接插入排序法的思想建立一个有序线性表的时间复杂度为()。

(A)O(n)

(B)O(nlog2n)

(C)O(n2)

(D)O(1og2n)

23.下列各种排序算法中平均时间复杂度为O(n2)是()。

(A)快速排序

(B)堆排序

(C)归并排序

(D)冒泡排序

24.设有一组初始记录关键字序列为(34,76,45,18,26,54,92),则由这组记录关键字生成的二叉排序树的深度为()。

(A)4

(B)5

(C)6

(D)7

25.二叉排序树中左子树上所有结点的值均()根结点的值。

(A)<

(B)>

(C)=

(D)!

=

26.设一组初始记录关键字的长度为8,则最多经过()趟插入排序可以得到有序序列。

(A)6

(B)7

(C)8

(D)9

27.设一组初始记录关键字序列为(Q,H,C,Y,P,A,M,S,R,D,F,X),则按字母升序的第一趟冒泡排序结束后的结果是()。

(A)F,H,C,D,P,A,M,Q,R,S,Y,X

(B)P,A,C,S,Q,D,F,X,R,H,M,Y

(C)A,D,C,R,F,Q,M,S,Y,P,H,X

(D)H,C,Q,P,A,M,S,R,D,F,X,Y

二.填空题

1.在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为________,整个堆排序过程的时间复杂度为________。

2.在快速排序、堆排序、归并排序中,_________排序是稳定的。

3.为了能有效地应用HASH查找技术,必须解决的两个问题是____________________和__________________________。

4.中序遍历二叉排序树所得到的序列是___________序列(填有序或无序)。

5.快速排序的最坏时间复杂度为___________,平均时间复杂度为__________。

6.设一组初始记录关键字序列为(55,63,44,38,75,80,31,56),则利用筛选法建立的初始堆为___________________________。

7.__________遍历二叉排序树中的结点可以得到一个递增的关键字序列(填先序、中序或后序)。

8.设一组初始记录关键字为(72,73,71,23,94,16,5),则以记录关键字72为基准的一趟快速排序结果为___________________________。

9.下列算法实现在二叉排序树上查找关键值k,请在下划线处填上正确的语句。

typedefstructnode

{intkey;

structnode*lchild;

structnode*rchild;}

bitree;

bitree*bstsearch(bitree*t,intk)

{

if(t==0)

return(0);

elsewhile(t!

=0)

if(t->key==k)

_____________;

elseif(t->key>k)t=t->lchild;

else_____________;

}

10.设有n个无序的记录关键字,则直接插入排序的时间复杂度为________,快速排序的平均时间复杂度为_________。

11.根据初始关键字序列(19,22,01,38,10)建立的二叉排序树的高度为____________。

12.设初始记录关键字序列为(K1,K2,…,Kn),则用筛选法思想建堆必须从第______个元素开始进行筛选。

 

13.设一组初始记录关键字序列为(20,18,22,16,30,19),则以20为中轴的一趟快速排序结果为______________________________。

14.设一组初始记录关键字序列为(20,18,22,16,30,19),则根据这些初始关键字序列建成的初始堆为________________________。

15.设一组初始记录关键字序列(k1,k2,……,kn)是堆,则对i=1,2,…,n/2而言满足的条件为_______________________________。

16.下面程序段的功能是实现冒泡排序算法,请在下划线处填上正确的语句。

voidbubble(intr[n])

{

for(i=1;i<=n-1;i++)

{

for(exchange=0,j=0;j<_____________;j++)

if(r[j]>r[j+1])

{temp=r[j+1];

______________;

r[j]=temp;exchange=1;}

if(exchange==0)

return;

}

}

17.简单选择排序和直接插入排序算法的平均时间复杂度为___________。

18.快速排序算法的空间复杂度平均情况下为__________,最坏的情况下为__________。

19.设关键字序列为(Kl,K2,…,Kn),则用筛选法建初始堆必须从第______个元素开始进行筛选。

20.设有一组初始关键字序列为(24,35,12,27,18,26),则第3趟直接插入排序结束后的结果的是__________________________________。

21.设有一组初始关键字序列为(24,35,12,27,18,26),则第3趟简单选择排序结束后的结果的是__________________________________。

22.下面程序段的功能是实现一趟快速排序,请在下划线处填上正确的语句。

structrecord

{intkey;

datatypeothers;};

voidquickpass(structrecordr[],ints,intt,int&i)

{

intj=t;

structrecordx=r[s];

i=s;

while(i

{

while(ix.key)

j=j-1;

if(i

{r[i]=r[j];

i=i+1;}

while(____________________)

i=i+1;

if(i

{r[j]=r[i];

j=j-1;}

}

_________________;

}

23.设一组初始记录关键字序列为(49,38,65,97,76,13,27,50),则以d=4为增量的一趟希尔排序结束后的结果为_____________________________。

24.下面程序段的功能是实现在二叉排序树中插入一个新结点,请在下划线处填上正确的内容。

typedefstructnode

{intdata;

structnode*lchild;

structnode*rchild;}

bitree;

voidbstinsert(bitree*&t,intk)

{

if(t==0)

{____________________________;

t->data=k;

t->lchild=t->rchild=0;}

elseif(t->data>k)

bstinsert(t->lchild,k);

else__________________________;

}

25.设一组初始记录关键字序列为(49,38,65,97,76,13,27,50),则第4趟直接选择排序结束后的结果为_____________________________。

26.设有一组初始记录关键字序列为(50,16,23,68,94,70,73),则将它们调整成初始堆只需把16与___________相互交换即可。

27.对一组初始关键字序列(40,50,95,20,15,70,60,45,10)进行冒泡排序,则第一趟需要进行相邻记录的比较的次数为__________,在整个排序过程中最多需要进行__________趟排序才可以完成。

28.在堆排序和快速排序中,如果从平均情况下排序的速度最快的角度来考虑应最好选择_________排序,如果从节省存储空间的角度来考虑则最好选择________排序。

29.设一组初始记录关键字序列为(20,12,42,31,18,14,28),则根据这些记录关键字构造的二叉排序树的平均查找长度是_______________________________。

30.设一组记录关键字序列为(80,70,33,65,24,56,48),则用筛选法建成的初始堆为_______________________。

31.设需要对5个不同的记录关键字进行排序,则至少需要比较_____________次,至多需要比较_____________次。

32.快速排序算法的平均时间复杂度为____________,直接插入排序算法的平均时间复杂度为___________。

33.设二叉排序树的高度为h,则在该树中查找关键字key最多需要比较_________次。

34.设一组初始关键字序列为(38,65,97,76,13,27,10),则第3趟冒泡排序结束后的结果为_____________________。

35.设一组初始关键字序列为(38,65,97,76,13,27,10),则第3趟简单选择排序后的结果为______________________。

 

三.判断题

1.冒泡排序在初始关键字序列为逆序的情况下执行的交换次数最多。

()

2.层次遍历初始堆可以得到一个有序的序列。

()

3.中序遍历二叉排序树可以得到一个有序的序列。

()

4.快速排序是排序算法中平均性能最好的一种排序。

()

5.当向二叉排序树中插入一个结点,则该结点一定成为叶子结点。

()

6.设某堆中有n个结点,则在该堆中插入一个新结点的时间复杂度为O(log2n)。

()

7.如果两个关键字的值不等但哈希函数值相等,则称这两个关键字为同义词。

()

8.设初始记录关键字基本有序,则快速排序算法的时间复杂度为O(nlog2n)。

()

9.向二叉排序树中插入一个结点需要比较的次数可能大于该二叉树的高度。

()

10.希尔排序算法的时间复杂度为O(n2)。

()

11.中序遍历一棵二叉排序树可以得到一个有序的序列。

()

12.堆是完全二叉树,完全二叉树不一定是堆。

()

四.应用题

1.画出向小根堆中加入数据4,2,5,8,3时,每加入一个数据后堆的变化。

 

2.设一组初始记录关键字序列为(45,80,48,40,22,78),则分别给出第4趟简单选择排序和第4趟直接插入排序后的结果。

 

3.设有一组初始记录关键字为(45,80,48,40,22,78),要求构造一棵二叉排序树并给出构造过程。

 

4.已知序列(10,18,4,3,6,12,1,9,18,8)请用快速排序写出每一趟排序的结果。

 

五.算法设计

1.设计判断二叉树是否为二叉排序树的算法。

 

2.在链式存储结构上设计直接插入排序算法。

 

3.设计在链式结构上实现简单选择排序算法。

 

4.设计求结点在二叉排序树中层次的算法。

 

5.设计在二叉排序树上查找结点X的算法。

 

6.设关键字序列(k1,k2,…,kn-1)是堆,设计算法将关键字序列(k1,k2,…,kn-1,x)调整为堆。

 

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1