?考点23:排序方法
(1)排序:无序序列转换为有序序列的过程。
(2)内部排序:内存中记录的排序。
●基于插入的排序:直接插入排序、折半插入排序、Shell排序。
●基于交换的排序:冒泡排序、快速排序。
●基于选择的排序:直接选择排序、堆排序
●归并排序。
●基数排序。
(3)外部排序:含外存记录的排序。
●多路归并排序。
●败者树。
1.对一组数据(2,12,16,88,5,10)进行排序,若前三趟排序结果如下:
第一趟结果:(2,12,16,5,10,88)
第二趟结果:(2,12,5,10,16,88)
第三趟结果:(2,5,10,12,16,88)
则采用的排序方法是()。
A.起泡排序B.希尔排序C.归并排序D.基数排序
2.排序过程中,对尚未确定最终位置的所有元素进行一遍处理称为一“趟”。下列序列中,不可能是快速排序第二趟结果的是()。
A.5,2,16,12,28,60,32,72B.2,16,5,28,12,60,32,72
C.2,12,16,5,28,32,72,60D.5,2,12,28,16,32,72,60
3.对初始数据序列(8,3,9,11,2,1,4,7,5,10,6)进行希尔排序。若第一趟排序结果为(1,3,7,5,2,6,4,9,11,10,8),第二趟排序结果为(1,2,6,4,3,7,5,8,11,10,9),则两趟排序采用的增量(间隔)依次是()。
A.3,1B.3,2C.5,2D.5,3
4.在将数据序列(6,1,5,9,8,4,7)建成大根堆时,正确的序列变化过程是()。
A.6,1,7,9,8,4,5→6,9,7,1,8,4,5→9,6,7,1,8,4,5→9,8,7,1,6,4,5
B.6,9,5,1,8,4,7→6,9,7,1,8,4,5→9,6,7,1,8,4,5→9,8,7,1,6,4,5
C.6,9,5,1,8,4,7→9,6,5,1,8,4,7→9,6,7,1,8,4,5→9,8,7,1,6,4,5
D.6,1,7,9,8,4,5→7,1,6,9,8,4,5→7,9,6,1,8,4,5→9,7,6,1,8,4,5→9,8,6,1,7,4,5
5.已知序列25,13,10,12,9是大根堆,在序列尾部插入新元素18,将其再调整为大根堆,调整过程中元素之间进行的比较次数是()。
A.1B.2C.4D.5
6.在内部排序过程中,对尚未确定最终位置的所有元素进行一遍处理称为一趟排序。下列排序方法中,每一趟排序结束都至少能够确定一个元素最终位置的方法是()。
Ⅰ.简单选择排序Ⅱ.希尔排序Ⅲ.快速排序
Ⅳ.堆排序Ⅴ.二路归并排序
A.仅Ⅰ、Ⅲ、IVB.仅Ⅰ、Ⅲ、Ⅴ
C.仅Ⅱ、Ⅲ、ⅣD.仅Ⅲ、Ⅳ、Ⅴ
7.对一组数据(84、47、25、15、21)进行排序,数据的排序次序在排序的过程中的变化为:
第一步:(84、47、25、15、21)
第二步:(15、47、25、84、21)
第三步:(15、21、25、84、47)
第四步:(15、21、25、47、84)
则其采用的排序方法是()。
A.选择排序B.冒泡排序C.快速排序D.插入排序
8.下列()排序方法在一趟排序结束后,不一定能选出一个元素放在其最终的位置上。
A.选择排序B.起泡排序C.归并排序D.堆排序
答案
?考点23:排序方法
1.解析:
本题考查各种排序过程,分析如下:
1)起泡/冒泡排序
第一趟:两两相邻比较,将无序序列所有数(2,12,16,88,5,10)中的最大值88放入当前待排序序列最终位置(第6个位置),无序序列长度减1,为(2,12,16,5,10),排序结果为(2,12,16,5,10,88).
第二趟:两两相邻比较,将无序序列所有数(2,12,16,5,10)中的最大值16放入当前待排序序列最终位置(第5个位置),无序序列长度减1,为(2,12,5,10),排序结果为(2,12,5,10,16,88)。
第三趟:两两相邻比较,将无序序列所有数(2,12,5,10)中的最大值12放入当前待排序序列最终位置(第4个位置),无序序列长度减1,为(2,5,10),排序结果(2,5,10,12,16,88)。
2)希尔排序
(1)第一趟:
步长为2:排序结果步长为(2,10,5,12,16,88)。
步长为3:排序结果(2,5,10,88,12,16)。
步长为4,排序结果(2,10,16,88,5,12)。
步长为5:排序结果(2,12,16,88,5,10)。
(2)和答案均不同,不是希尔排序结果。
3)归并排序
(1)第一趟:
2路归并:排序结果为(2,12,16,88,5,10),和答案不同。
3路归并:排序结果为(2,12,16,5,10,88),和答案相同,第二趟进行3路归并排序。
(2)第二趟:排序结果为(2,5,10,12,16,88),和答案不同,增加路数,继续尝试第一趟排序结果。
(3)第一趟4路归并:排序结果为(2,12,16,88,5,10),和答案不同。
(4)第一趟5路归并:排序结果为(2,5,12,16,88,10),和答案不同。
(5)不是归并排序结果。
4)基数排序
(1)第一趟排序结果为(10,2,12,5,16,88),和答案不同。
(2)不是基数排序结果。
参考答案:A
2.解析:
要理解清楚排序过程中一“趟”的含义,题干也进行了解释。一个初始无序序列,所有元素都没有确定最终位置,对所有元素做一次(称为趟)快速排序后一个元素确定最终位置,且将原序列划分成了前后两块,此时前后两块子表是无序的。按“趟”的解释——对尚未确定最终位置的所有元素都处理一遍才是一趟,所以此时要对前后两块子表各做—次快速排序才是一“趟”快速排序,如果只对一块子表进行了排序,而未处理另一块子表,就不能算是完整的一趟。
选项A,第一趟匹配72,只余一块无序序列,第二趟匹配28,A可能。选项B,第一趟匹配2,第二趟匹配72,B可能。选项C,第一趟匹配2,第二趟匹配28或32,C可能。选项D,无论先匹配12还是先匹配32,都会将序列分成两块,那么第二趟必须有两个元素匹配,所以D不可能,故选D。
参考答案:D
3.解析:
第一趟分组:8,1,6;3,4;9,7;11,5;2,10;间隔为5,排序后组内递增。
第二趟分组:1,5,4,10;3,2,9,8;7,6,11;间隔为3,排序后组内递增。
参考答案:D
4.解析:
要熟练掌握建堆、堆的调整方法,从序列末尾开始向前遍历,变换过程如下图所示。
参考答案:A
5.解析:
插入18后,首先将18与10比较,交换位置,再将18与25比较,不交换位置。共比较了2次,调整的过程如下图所示。
参考答案:B
6.解析:
对于Ⅰ.简单选择排序每次选择未排序列中的最小元素放入其最终位置。对于Ⅱ,希尔排序每次是对划分的子表进行排序,得到局部有序的结果,所以不能保证每一趟排序结束都能确定一个元素的最终位置。对于Ⅲ,快速排序每一趟排序结束后都将枢轴元素放到最终位置。对于Ⅳ,堆排序属于选择排序,每次都将大根堆的根结点与表尾结点交换,确定其最终位置,对于Ⅴ,二路归并排序每趟对子表进行两两归并从而得到若干个局部有序的结果,但无法确定最终位置。
参考答案:A
7.解析:
对每步的排序结果进行分析:
(1)每一歩排序后都有一个元素的位置被确定。
(2)每一歩的排序没有产生内部有序子序列。
(3)符合怏速排序特征。
参考答案:C
8.解析:
归并排序对序列进行了分割与合并,每次合并都可能引起各个元素位置在序列内位置的改变。
参考答案:C
往期回顾??22考研,这里就是你想找的寄宿考研学校??计算机考研有多难??计算机考研考两门专业课数据结构和计算机组成原理院校汇总??计算机考研
专业课考两门考数据结构和操作系统院校汇总??北京交通大学计算机专业信息汇总??中国人民大学计算机专业院校信息了解更多计算机考研信息、课程辅导请联系电话/预览时标签不可点收录于话题#个上一篇下一篇