数据结构考研试题精选及答案第10章 排序

更新时间:2023-11-26 21:50:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第10章 排序

一、选择题

1.某内排序方法的稳定性是指( )。 【南京理工大学 1997 一、10(2分)】

A.该排序算法不允许有相同的关键字记录 B.该排序算法允许有相同的关键字记录

C.平均时间为0(n log n)的排序方法 D.以上都不对 2.下面给出的四种排序法中( )排序法是不稳定性排序法。【北京航空航天大学 1999 一、10 (2分)】

A. 插入 B. 冒泡 C. 二路归并 D. 堆积 3.下列排序算法中,其中( )是稳定的。 【福州大学 1998 一、3 (2分)】

A. 堆排序,冒泡排序 B. 快速排序,堆排序 C. 直接选择排序,归并排序 D. 归并排序,冒泡排序

4.稳定的排序方法是( ) 【北方交通大学 2000 二、3(2分)】

A.直接插入排序和快速排序 B.折半插入排序和起泡排序 C.简单选择排序和四路归并排序 D.树形选择排序和shell排序

5.下列排序方法中,哪一个是稳定的排序方法?( ) 【北方交通大学 2001 一、8(2分)】

A.直接选择排序 B.二分法插入排序 C.希尔排序 D.快速排序 6.若要求尽可能快地对序列进行稳定的排序,则应选(A.快速排序 B.归并排序 C.冒泡排序)。

【北京邮电大学 2001 一、5(2分)】

7.如果待排序序列中两个数据元素具有相同的值,在排序前后它们的相互位置发生颠倒,则称该排序算法是不稳定的。( )就是不稳定的排序方法。【清华大学 1998 一、3 (2分)】

A.起泡排序 B.归并排序 C.Shell排序 D.直接插入排序 E.简单选择排序

8.若要求排序是稳定的,且关键字为实数,则在下列排序方法中应选( )排序为宜。

A.直接插入 B.直接选择 C.堆 D.快速 E.基数 【中科院计算所 2000 一、5(2分)】

9.若需在O(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方

法是( )。

A. 快速排序 B. 堆排序 C. 归并排序 D. 直接插入排序 【中国科技大学 1998 二、4(2分)】 【中科院计算所 1998 二、4(2分)】 10.下面的排序算法中,不稳定的是( ) 【北京工业大学 1999 一、2 (2分)】 A.起泡排序 B.折半插入排序 C.简单选择排序 D.希尔排序 E.基数排序 F.堆排序。

11.下列内部排序算法中: 【北京工业大学 2000 一、1 (10分 每问2分)】

A.快速排序 B.直接插入排序 C. 二路归并排序 D. 简单选择排序 E. 起泡排序 F. 堆排序

(1) 其比较次数与序列初态无关的算法是( ) (2)不稳定的排序算法是( ) (3)在初始序列已基本有序(除去n个元素中的某k个元素后即呈有序,k<

(4)排序的平均时间复杂度为O(n?logn)的算法是( )为O(n?n)的算法是( )

12.排序趟数与序列的原始状态有关的排序方法是( )排序法。【北京航空航天大学 1999 一、9(2分)】

A.插入 B. 选择 C. 冒泡 D. 快速

13.下面给出的四种排序方法中,排序过程中的比较次数与排序方法无关的是。( )

A.选择排序法 B. 插入排序法 C. 快速排序法 D. 堆积排序法 【北京航空航天大学 2000 一、10(2分)】

14.对下列四种排序方法,在排序中关键字比较次数同记录初始排列无关的是( )。

A.直接插入 B. 二分法插入 C. 快速排序 D. 归并排序 【南京理工大学 2000 一、7 (1.5分)】 15.在下列排序算法中,哪一个算法的时间复杂度与初始排序无关( )。【北京理工大学 2001 六、4 (2)】

A. 直接插入排序 B. 气泡排序 C. 快速排序 D. 直接选择排序 16.比较次数与排序的初始状态无关的排序方法是( )。【北方交通大学 2000 二、2(2分)】

A.直接插入排序 B.起泡排序 C.快速排序 D.简单选择排序 17.数据序列(8,9,10,4,5,6,20,1,2)只能是下列排序算法中的( )的两趟排序后的结果。

A.选择排序 B.冒泡排序 C.插入排序 D.堆排序 【合肥工业大学 1999 一、3 (2分)】

18.数据序列(2,1,4,9,8,10,6,20)只能是下列排序算法中的( )的两趟排序后

的结果。

A. 快速排序 B. 冒泡排序 C. 选择排序 D. 插入排序 【合肥工业大学 2000 一、3 (2分)】

19.对一组数据(84,47,25,15,21)排序,数据的排列次序在排序的过程中的变化为 (1) 84 47 25 15 21 (2) 15 47 25 84 21 (3) 15 21 25 84 47 (4) 15 21 25 47 84

则采用的排序是 ( )。 【南京理工大学 1997 一、2 (2分)】

A. 选择 B. 冒泡 C. 快速 D. 插入

20.对序列{15,9,7,8,20,-1,4}进行排序,进行一趟后数据的排列变为{4,9,-1,8,20,7,15};则采用的是( )排序。【南京理工大学 1998 一、8(2分)】

A. 选择 B. 快速 C. 希尔 D. 冒泡

21.若上题的数据经一趟排序后的排列为{9,15,7,8,20,-1,4},则采用的是( )排序。

A.选择 B. 堆 C. 直接插入 D. 冒泡 【南京理工大学 1998 一、9(2分)】

22.下列排序算法中( )不能保证每趟排序至少能将一个元素放到其最终的位置上。

A.快速排序 B. shell排序 C. 堆排序 D.冒泡排序 【合肥工业大学 2001 一、3(2分)】

23.下列排序算法中( )排序在一趟结束后不一定能选出一个元素放在其最终位置上。

A. 选择 B. 冒泡 C. 归并 D. 堆 【南京理工大学 2001 一、7(1.5分)】【哈尔滨工业大学 2001 二、4(2分)】 24.下列序列中,( )是执行第一趟快速排序后所得的序列。 【福州大学 1998 一、9 (2分)】

A. [68,11,18,69] [23,93,73] B. [68,11,69,23] [18,93,73]

C. [93,73] [68,11,69,23,18] D. [68,11,69,23,18] [93,73] 25.有一组数据(15,9,7,8,20,-1,7,4) 用快速排序的划分方法进行一趟划分后数据的排序为 ( )(按递增序)。 【南京理工大学 1996 一、4 (2分)】 A.下面的B,C,D都不对。 B.9,7,8,4,-1,7,15,20 C.20,15,8,9,7,-1,4,7 D. 9,4,7,8,7,-1,15,20 26.一组记录的关键码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为( )。 【燕山大学 2001 一、4(2分)】

A.(38,40,46,56,79,84) B. (40,38,46,79,56,84) C.(40,38,46,56,79,84) D. (40,38,46,84,56,79) 27. 在下面的排序方法中,辅助空间为O(n)的是( ) 。【南京理工大学 1999 一、17(1分)】

A.希尔排序 B. 堆排序 C. 选择排序 D. 归并排序 28.下列排序算法中,在待排序数据已有序时,花费时间反而最多的是( )排序。 A. 冒泡 B. 希尔 C. 快速 D. 堆 【南京理工大学 2001 一、12 (1.5分)】 29.下列排序算法中,在每一趟都能选出一个元素放到其最终位置上,并且其时间性能受数据初始特性影响的是:( )。

A. 直接插入排序 B. 快速排序 C. 直接选择排序 D. 堆排序

30. 对初始状态为递增序列的表按递增顺序排序,最省时间的是( )算法,最费时间的

是( )算法。

A. 堆排序 B. 快速排序 C. 插入排序 D. 归并排序 【南开大学 2000 一、5】

31. 就平均性能而言,目前最好的内排序方法是( )排序法。【西安电子科技大学 1998 一、9 (2分)】

A. 冒泡 B. 希尔插入 C. 交换 D. 快速

32.如果只想得到1000个元素组成的序列中第5个最小元素之前的部分排序的序列,用

( )方法最快。

A.起泡排序 B.快速排列 C.Shell排序 D.堆排序 E.简单选择排序 【清华大学 1998 一、2 (2分)】 类似本题的另外叙述有:

(1)设有5000个无序的元素,希望用最快的速度挑选出其中前十个最大的元素,在以下的排序方法中( )最好?为什么? 【山东工业大学 1995 二、4 (3分)】

A.快速排序 B.堆排序 C.归并排序 D.基数排序 E.SHELL排序

(2)数据表中有10000个元素,如果仅要求求出其中最大的10个元素,则采用( )算法最节省时间。

A. 堆排序 B. 希尔排序 C. 快速排序 D. 直接选择排序 【北京理工大学 2000 一、5 (2分)】

(3)设有1000个无序的元素,希望用最快的速度挑选出其中前十个最大的元素,在以下的排序方法中采用哪一种最好? ( ) 【东北大学 1999 一、5 (3分)】

A. 快速排序 B. 归并排序 C. 堆排序 D.基数排序 E.shell排序

33.在文件“局部有序”或文件长度较小的情况下,最佳内部排序的方法是( )

A.直接插入排序 B.冒泡排序 C.简单选择排序 【山东工业大学 1995 二、1 (2分)】

类似本题的另外叙述有:

(1)在文件\局部有序\或文件长度较小的情况下,最佳内部排序的方法是( )。

A. 直接插入排序 B. 冒泡排序 C. 简单选择排序 D. 快速排序 【山东大学 2001 二、 2 (1分)】

(2)在待排序的元素序列基本有序的前提下,效率最高的排序方法是( )。 【武汉大学 2000 二、6】

A.插入排序 B. 选择排序 C. 快速排序 D. 归并排序 34.下列排序算法中,( )算法可能会出现下面情况:在最后一趟开始之前,所有元素

都不在其最终的位置上。【南开大学 2000 一、4】 【西北大学 2001 二、1】 A. 堆排序 B. 冒泡排序 C. 快速排序 D. 插入排序 35. 下列排序算法中,占用辅助空间最多的是:( ) 【厦门大学 2002 五、2 (8分)】

A. 归并排序 B. 快速排序 C. 希尔排序 D. 堆排序 36.从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在已排序序列的合适位置,该排序方法称为( )排序法。【北京航空航天大学 1999 一、8(2分)】

A. 插入 B. 选择 C. 希尔 D. 二路归并

37. 在排序算法中,每次从未排序的记录中挑出最小(或最大)关键码字的记录,加入到已排序记录的末尾,该排序方法是( )。【中山大学 1999 一、11】 A. 选择 B. 冒泡 C. 插入 D. 堆 38.用直接插入排序方法对下面四个序列进行排序(由小到大),元素比较次数最少的是( )。

A. 94,32,40,90,80,46,21,69 B. 32,40,21,46,69,94,90,80 C. 21,32,46,40,80,69,90,94 D. 90,69,80,46,21,32,94,40 【北方交通大学 2001 一、15 (2分)】

39.直接插入排序在最好情况下的时间复杂度为( )【北京邮电大学 1999 一、5 (2分)】

2

A. O(logn) B. O(n) C. O(n*logn) D. O(n) 40. 若用冒泡排序方法对序列{10,14,26,29,41,52}从大到小排序,需进行 ( )次比较。

A. 3 B. 10 C. 15 D. 25 【南京理工大学 1999 一、11(4分)】

类似本题的另外叙述有:

(1)若用冒泡排序对关键字序列{18,16,14,12,10,8},进行从小到大的排序,所需进行的关键字比较总次数是( ) 【北京工商大学 2001 一、4(3分)】

A. 10 B. 15 C. 21 D. 34 41. 采用简单选择排序,比较次数与移动次数分别为( )。【南京理工大学 2000 一、18(1.5分)】 A. O(n),O(logn) B. O(logn),0(n*n) C. 0(n*n),0(n) D. 0(nlogn),0(n) 42. 对序列{15,9,7,8,20,-1,4,} 用希尔排序方法排序,经一趟后序列变为{15,-l,4,8,20,9,7}则该次采用的增量是 ( ) 【南京理工大学 1999 一、15(1分)】

A. l B. 4 C. 3 D. 2 43.对下列关键字序列用快速排序法进行排序时,速度最快的情形是( )。

A. {21,25,5,17,9,23,30} B.{25,23,30,17,21,5,9}

C. {21,9,17,30,25,23,5} D. {5,9,17,21,23,25,30}【北方交通大学 2001 一、18 (2分)】 44.对关键码序列28,16,32,12,60,2,5,72快速排序,从小到大一次划分结果为( )。

A. (2,5,12,16)26(60,32,72) B. (5,16,2,12)28(60,32,72)

C. (2,16,12,5)28(60,32,72) D. (5,16,2,12)28(32,60,72) 【青岛大学 2000 三、4 (2分)】

45.对n个记录的线性表进行快速排序为减少算法的递归深度,以下叙述正确的是( )

A.每次分区后,先处理较短的部分 B.每次分区后,先处理较长的部分

C.与算法每次分区后的处理顺序无关 D.以上三者都不对 【北方交通大学 2000 二、5 (2分)】

46.当n个整型数据是有序时,对这n个数据用快速排序算法排序,则时间复杂度是 ( 6 ),当用递归算法求n!时,算法的时间复杂度是 ( 7 ),则:(6)-(7)=( )【南京理工大学1999 一、(6-7)(4分)】

A. O(n) B. O(nlogn) C. O(n*n) D. O(logn) 47.快速排序在最坏情况下的时间复杂度是( ),比( )的性能差。

23

A.O(NlogN) B.O(N) C.O(N) D.堆排序E.冒泡排序F.选择排序 【山东工业大学 1995 二、2 (4分)】

48. 快速排序方法在( )情况下最不利于发挥其长处。 【燕山大学 2001 一、3 (2分)】

A. 要排序的数据量太大 B. 要排序的数据中含有多个相同值 C. 要排序的数据个数为奇数 D. 要排序的数据已基本有序 49.在含有n个关键字的小根堆(堆顶元素最小)中,关键字最大的记录有可能存储在( )

位置上。

A.?n/2? B.?n/2? -1 C.1 D.?n/2? +2 【中科院计算所2000 一、4(2分)】

50. 以下序列不是堆的是( )。【西安电子科技大学 2001应用一、5 (2分)】

A. (100,85,98,77,80,60,82,40,20,10,66) B. (100,98,85,82,80,77,66,60,40,20,10) C. (10,20,40,60,66,77,80,82,85,98,100) D. (100,85,40,77,80,60,66,98,82,10,20) 51.下列四个序列中,哪一个是堆( )。 【北京工商大学 2001 一、8 (3分)】

A. 75,65,30,15,25,45,20,10 B. 75,65,45,10,30,25,20,15 C. 75,45,65,30,15,25,20,10 D. 75,45,65,10,25,30,20,15

52. 堆排序是( )类排序,堆排序平均执行的时间复杂度和需要附加的存储空间复杂度分别是()

A. 插入 B. 交换 C. 归并 D. 基数 E. 选择

2

F. O(n)和O(1) G. O(nlog2n)和O(1)

2

H. O(nlog2n)和O(n) I. O(n)和O(n) 【西北大学 2001 二、2】 53.在对n个元素的序列进行排序时,堆排序所需要的附加存储空间是( )。

A. O(log2n) B. O(1) C. O(n) D. O(nlog2n) 【西安电子科技大学2001应用一、10(2分)】

54. 对n 个记录的文件进行堆排序,最坏情况下的执行时间是多少?( )

A.O(log2n)B.O(n) C.O(nlog2n) D.O(n*n) 【北方交通大学 2001 一、9(2分)】

55. 有一组数据(15,9,7,8,20,-1,7,4),用堆排序的筛选方法建立的初始堆为 ( )

A.-1,4,8,9,20,7,15,7 B.-1,7,15,7,4,8,20,9

C.-1,4,7,8,20,15,7,9 D.A,B,C均不对。 【南京理工大学 1996 二、5(2分)】

【上海交通大学 2000 六 (8分)】

7.以下概念的区别:拓扑排序与冒泡排序。 【大连海事大学 1996 三、 2(3) (2分)】 8.简述直接插入排序,简单选择排序,2-路归并排序的基本思想以及在时间复杂度和排序稳定性上的差别。

【西北工业大学 1999 二 (8分)】

9.快速排序,堆排序和希尔排序是时间性能较好的排序方法,也是稳定的排序方法。判断正误并改错。

【燕山大学 1998 二、5 (2分)】

10. 设LS是一个线性表,LS=(a1,a2,?,an),若采用顺序存储结构,则在等概率的前提下,插入一个元素需要平均移动的元素个数是多少?若元素插在ai与ai+1之间(0<=i<=n-1)的概率为(n-i)/(n*(n+1)/2),则插入一个元素需要平均移动的元素个数又是多少?【西安电子科技大学 2001软件 二、3 (5分)】

11.对于堆积排序法,快速排序法和归并排序法,若仅从节省存储空间考虑,则应该首先选取其中哪种方法?其次选取哪种方法?若仅考虑排序结果的稳定性,则应该选取其中哪种方法?若仅从平均情况下排序最快这一点考虑,则应该选取其中哪些方法?【北京航空航天大学 1998 一、10 (4分)】

12. 在堆排序、快速排序和合并排序中: 【吉林大学 2001 一、5 (6分)】

(1).若只从存储空间考虑,则应首先选取哪种排序方法,其次选取哪种排序方法,最后选

取哪种排序方法?

(2).若只从排序结果的稳定性考虑,则应选取哪种排序方法? (3).若只从平均情况下排序最快考虑,则应选取哪种排序方法?

(4).若只从最坏情况下排序最快并且要节省内存考虑,则应选取哪种排序方法?

13. 快排序、堆排序、合并排序、Shell排序中哪种排序平均比较次数最少,哪种排序占用空间最多,哪几种排序算法是不稳定的? 【首都经贸大学 1997 一、3 (4分)】 14.欲求前k个最大元素,用什么分类方法好?为什么?什么是稳定分类?分别指出下列算法是否是稳定分类算法,或易于改成稳定分类算法? A. 插入分类 B.快速分类 C.合并分类 D.堆分类 E.基数分类【东南大学 1994 一、3 (8分)】 15.考虑由三个不同关键词构成的序列:{a,b,c},试画出直接插入排序算法的二叉判定树。

【吉林大学 2001 一、3 (4分)】 16. 请阅读下列算法,回答问题

PROCEDURE sort(r,n) BEGIN

FOR i:=2 TO n DO

BEGIN

x:=r(i);r(O):=x;j:=i-1; WHILE x.key

r(j+1):=r(j); j:=j-1 END; r(j+1):=x END

END;

问题一:这是什么类型的排序算法,该排序算法稳定吗? 问题二:设置r(O)的作用是什么?若将WHILE—DO 语句中判断条件改为x.key<=r(j).KEY,

该算法将会有什么变化,是否还能正确工作?【上海海运学院 1998 六 (10分)】 17.下面是冒泡排序算法,请阅读并完成该程序,并回答以下问题:

PROCEDURE bubblesort (r,n) BEGIN

i:=1; m:=n-1; flag:=1;

WHILE (i<=(1)___)AND(flag=(2)____) DO BEGIN

flag:= (3)___; FOR j:=1 TO m DO

IF r[j].key>r[j+1].key THEN

BEGIN flag:= (4)___; t:=r[j]; r[j]:=r[j+1]; r[j+1]:=t END; i:=i+1;m:=m-1

END; END.

(1) 请在上面横线上填上适当的语句,完成该算法程序。 (2) 设计标志flag的作用是什么?

(3) 该算法结点的最大比较次数和最大移动次数是多少?

(4) 该分类算法稳定吗? 【上海海运学院 1996 六(12分) 1999 六(16分)】 18.仔细阅读下面的过程,并回答有关的问题

PROCEDURE unknownname(VAR A:array[1..500] OF integer;n:integer); VAR i,j,x:integer; b:boolean; BEGIN

b:=true; i:=1;

WHILE (i

b:=false;

FOR j:=1 TO(1)___DO IF(2)___

THEN BEGIN

x:=A[j]; A[j]:=A[j+1]; A[j+1]:=x; (3)___ END; i:=i+1; END

END; 【西安电子科技大学 2001计应用 六 (14分)】

(1) 在 中填上正确的语句,使该过程能完成预期的功能。 (2) 该过程使用的是什么排序方法?

(3) 当数组A的元素初始时已按值递增排序,该过程执行中会进行多少次比较?多少次交换?

(4) 当数组A的元素初始时已按值递减排序,该过程执行中会进行多少次比较?多少次交换?

19.写出下列排序算法的基本思想,并写出对序列(23,12,35,47,16,25,36,19,21,16)进行排序时每一趟的结果。

PROC bbsort(VAR r: sequence; n: integer);

{r是一个数组}

d:=1; pos[-1]:=1; pos[1]:=n; i:=1; exchanged:= true; WHILE exchanged DO [ exchanged:= false; WHILE i<>pos[d] DO

[IF (r[i]-r[i+d])*d>0 THEN [r[i]与r[i+d]交换;

exchanged:=true;];

i:=i+d; ]

pos[d]:=pos[d]-d; i:=pos[d]; d:=-d; ]

ENDP; 【山东科技大学 2002 五 (12分)】

20.设要求从大到小排序。问在什么情况下冒泡排序算法关键字交换的次数为最大。

【南京航空航天大学 1996 九、1 (4分)】

21.设与记录R1,R2,?,Rn对应的关键词分别是K1,K2,?,Kn。如果存在Ri和Rj使得j

22.现有一文件F含有1000个记录,其中只有少量记录次序不对,且它们距离正确位置不远;如果以比较和移动次数作为度量,那末将其排序最好采用什么方法?为什么?【北方交通大学 1997 四(8分)】 23.分析下面排序算法中各带标号语句的频度及此算法的时间复杂度,并指出该算法是属于哪一种排序方法。 【北京邮电大学 1996 一、2 (7分)】 PROCEDURE sort (VAR a: ARRAY [1..n] OF integer); BEGIN

1 FOR i:=1 TO n-1 DO 2 [j:=i;

3 FOR k:=j+1 TO n DO 4 IF a[k]

] END;

24. 设待排序的关键码分别为28,13,72,85,39,41,6,20。按二分法插入排序算法已使前七个记录有序,中间结果如下: 【山东工业大学 1996 七 (10分)】

6 13 28 39 41 72 85 20

i=1 m=4 r=7 试在此基础上,沿用上述表达方式,给出继续采用二分法插入第八个记录的比较过程。 (1) 使用二分法插入排序所要进行的比较次数,是否与待排序的记录的初始状态有关? (2) 在一些特殊情况下,二分法插入排序比直接插入排序要执行更多的比较。这句话对吗?

25.算法模拟(15分,问题1,2各6分,问题3占3分) 设待排序的记录共7个,排序码分别为8,3,2,5,9,1,6。

(1) 用直接插入排序。试以排序码序列的变化描述形式说明排序全过程(动态过程)要求按递减顺序排序。

(2) 用直接选择排序。试以排序码序列的变化描述形式说明排序全过程(动态过程)要求按递减顺序排序。

(3) 直接插入排序算法和直接选择排序算法的稳定性如何?【山东工业大学 1997 四 (15分)】

26.在执行某个排序算法过程中,出现了排序关键字朝着最终排序序列相反的方向的移动,从而认为该算法是不稳定的。这种说法对么?为什么? 【东北大学 2001 一、1( 4分)】 类似本题的另外叙述有: (1) (冒泡)排序过程中,有的关键字在某趟排序中可能朝着与最终排序相反的方向移动,试举例说明之。快速排序过程中有没有这种现象? 【东北大学 2000 一 、5 (4分)】 27. 对下面数据表,写出采用SHELL排序算法排序的每一趟的结果,并标出数据移动情况。(125,11,22, 34,15,44,76,66,100,8,14,20,2,5,1)。【合肥工业大学 1999 四、4 (5分)】

28.快速排序的最大递归深度是多少?最小递归深度是多少?【清华大学 1999 一、1 (2分)】

29. 已知某文件的记录关键字集为{50,10,50,40,45,85,80},选择一种从平均性能而言是最佳的排序方法进行排序,且说明其稳定性。【西安电子科技大学 1996 五 (10分)】 30. 在内排序算法中,待排序的数据已基本有序时,花费时间反而最多的排序方法是哪种?

【西安电子科技大学 2000计应用 一、1 (5分)】

31.我们知道,对于n个元素组成的线性表进行快速排序时,所需进行的比较次数与这n个元素的初始排序有关。问: 【西安电子科技大学 2001计应用 五(12分)】【中国矿业大学 2000 六 (10分)】

(1) 当n=7时,在最好情况下需进行多少次比较?请说明理由。 (2) 当n=7时,给出一个最好情况的初始排序的实例。

(3) 当n=7时,在最坏情况下需进行多少次比较?请说明理由。 (4) 当n=7时,给出一个最坏情况的初始排序的实例。 类似本题的另外叙述有:

(1) 快速排序(quick sorting)的效率与原始序列有关,现用快速排序算法对关键字分别为1—15的15 个元素进行排序

① 在最好情况下要进行几遍比较,给出一种原始序列实例; ② 在最坏情况下要进行几遍比较,给出一种原始序列实例。【浙江大学 1995 七(12分)】

(2) 对N个元素组成的线性表进行快速排序时,所需进行的比较次数依赖于这N个元素的初始排列。对N=7,给出快速排序的一个最好情况的初始排列实例(7个元素可取自集合{l,2,3,4,5,6,7})。

【西北大学 2000 二、5(5分)】 32.有一随机数组(25,84,21,46,13,27,68,35,20),现采用某种方法对它们进行排序,其每趟排序结果如下, 则该排序方法是什么? 【武汉交通科技大学 1996 二、5 (6分)】

初 始:25,84,21,46,13,27,68,35,20 第一趟:20,13,21,25,46,27,68,35,84 第二趟:13,20,21,25,35,27,46,68,84 第三趟:13,20,21,25,27,35,46,68,84 33.快速排序是在所有情况下,排序速度最快吗?为什么?在何种情况下使用此排序法最好?

【北京邮电大学 1993 一、1 (5分)】

34.对给定文件(28,07,39,10,65,14,61,17,50,21)选择第一个元素28进行划分,写出其快速排序第一遍的排序过程。【厦门大学 1998 七、1 (8分)】

类似本题的另外叙述有:

(1) 对下列关键字序列进行快速排序(从小至大) (48, 38, 65, 95, 73, 13, 27, 50)要求给出快速排序的算法思想,并画出排序过程示意图。 【南京航空航天大学 1999 五 (10分)】

(2) 设记录的关键字集合K={23,9,39,5,68,12,62,48,33},给定的增量序列D={4,2,1},请写出对K按“SHELL方法”排序时各趟排序结束时的结果;若每次以表的第一元素为基准(或枢轴),写出对K按“快速排序方法”排序时,各趟排序结束时的结果。 【北京科技大学 1999 七(10分) 2000 七(10分)】 35.下面是一改进了的快速分类算法

1. PROCEDURE qsort1(VAR list:afile;m,n:integer); 2 (设list[m].key

5 WHILE m

7 i:=m;j:=n+1; k:=list[m].key; 8 REPEAT

9 REPEAT i:=i+1 UNTIL list[i].key>=k; 10 REPEAT j:=j-1 UNTIL list[j].key<=k;

11 IF i=j;

13 interchange( list[m],list[j]);

14 IF n-j>=j-m

15 THEN BEGIN qsort1(list,m,j+1);m:=j+1;END 16 ELSE BEGIN qsort1(list,j+1,n);n:=j-1;END 17 END;(OF WHILE) 18 END. 问:

(1) 将第9、10行中的>=,<=分别改成>,<行吗?为什么? (5分) (2) 该排序算法稳定否?举例说明 (5分)

(3) 对输入文件(22,3,30,4,60,11,58,18,40,16),列表表示该文件在每次调用qsort1时的状态及相应m、n值。(5分)

(4) 若输入文件有n个记录,简要说明支持qsort1递归所需最大栈空间用量(设一层递归用一个单位栈空间)。(5分) 【东南大学 1998 四 (20分)】

36.如果只要找出一个具有n个元素的集合的第k(1≤k≤n)个最小元素,你所学过的排序方法中哪种最适合?给出实现的思想。【北方交通大学 1998 六 (10分)】 37.已知快速排序和归并排序的算法分别如下所示:

PROCEDURE qksort(VAR r:listtype; s,t:integer); BEGIN

IF s

qkpass(r,s,t,k); qksort(r,s,k-1);

qksortd(r,k+1,t)

END

本文来源:https://www.bwwdw.com/article/t8lt.html

Top