自学考试

对关键字序列(6,1,4,3,7,2,8,5)进行快速排序时,以第1个元素为基准的一次划分的结果为 ( )A.(5,1,4,3,6,2,8,7)B.(5,1,4,3,2,6,7,8)C.(5,1,4,3,2,6,8,7)D.(8,7,6,5,4,3,2,1)

题目

对关键字序列(6,1,4,3,7,2,8,5)进行快速排序时,以第1个元素为基准的一次划分的结果为 ( )

A.(5,1,4,3,6,2,8,7)

B.(5,1,4,3,2,6,7,8)

C.(5,1,4,3,2,6,8,7)

D.(8,7,6,5,4,3,2,1)

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

以下关于快速排序算法的描述中,错误的是( )。在快速排序过程中,需要设立基准元素并划分序列来进行排序。若序列由元素{12,25,30,45,52,67,85}构成,则初始排列为( )时,排序效率最高(令序列的第一个元素为基准元素)。

A.快速排序算法是不稳定的排序算法

B.快速排序算法在最坏情况下的时间复杂度为0(nlgn)

C.快速排序算法是一种分治算法

D.当输入数据基本有序时,快速排序算法具有最坏情况下的时间复杂度


正确答案:B
解析:最坏情况是每次划分选取的基准都是当前无序区中关键字最小(或最大)的记录,划分的结果是基准左边的子区间为空(或右边的子区间为空),而划分所得的另一个非空的子区间中记录数目,仅仅比划分前的无序区中记录个数减少一个。因此,快速排序必须做n-1次划分,第i次划分开始时区间长度为n-i+1,所需的比较次数为n-i(1≤i≤n-1),故总的比较次数达到最大值:cmax=n(n-1)/2=O(2)在最好情况下,每次划分所取的基准都是当前无序区的“中值”记录,划分的结果是基准的左、右两个无序子区间的长度大致相等。总的关键字比较次数:O(nlgn)

第2题:

一组记录的关键字序列为(46,79,56,38,40,84)

(1)利用快速排序的方法,给出以第一个记录为基准得到的一次划分结果(给出逐次交换元

素的过程,要求以升序排列)。

(2)对上述序列用堆排序的方法建立大根堆,要求以二叉树逐次描述建堆过程。


参考答案(1)(2)

第3题:

对关键字序列{Q,H,C,Y,P,A,M,S,R,D,F,X},用下列()方法进行第一趟排序的结果为{F,H,C,D,P,A,M,Q,R,S,Y,X}。

A.直接插入排序

B.二路归并排序

C.以第一元素为基准的快速排序

D.基数排序


参考答案:C

第4题:

对下列4个序列用快速排序方法进行排序,以序列的第一个元素为划分的基准。在第一趟划分过程中,元素移动次数最多的序列是______。

A.70,75,82,90,23,16,10,68

B. 70,75,65,23,10,16,90,82

C. 82,75,70,16,10,90,68,23

D. 23,10,16,70,82,75,68,90


正确答案:A
解析: 根据快速排序方法的性质,第一趟划分元素,移动次数最多的序列是A。

第5题:

在快速排序过程中,通常取序列中的第1个记录作为枢轴,以它为“分界线”重排其余记录。但当初始记录序列按关键字有序或基本有序时,快速排序将蜕化为起泡排序,为改进之,应如何选取枢轴记录?


参考答案:应依据“三者取中”的原则,比较第一个、最后一个和中间位置处记录的关键字,取关键字居中值的记录作为枢轴记录。

第6题:

对下列四个序列用快速排序方法进行排序,以序列的第一个元素为划分的基准。在第一趟划分过程中,元素的移动次数最多的序列是

A.70,75,68,23,10,16,90,82

B.82,75,70,16,10,90,68,23

C.70,75,82,90,23,16,10,68

D.23,10,16,70,82,75,68,90


正确答案:C

第7题:

一组记录的关键字序列为(56,30,89,66,48,50,94,87,100),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为()。

A.48,30,50,56,66,89,94,87,100

B.30,50,48,56,66,89,94,100,87

C.50,30,48,66,56,89,94,87,100

D.50,30,48,56,66,89,94,87,100


参考答案:D

第8题:

● 以下关于快速排序算法的描述中,错误的是 (64) 。在快速排序过程中,需要设立基准元素并划分序列来进行排序。若序列由元素{12,25,30,45,52,67,85}构成,则初始排列为 (65) 时,排序效率最高(令序列的第一个元素为基准元素)。

(64)A. 快速排序算法是不稳定的排序算法

B. 快速排序算法在最坏情况下的时间复杂度为O(n1gn)

C. 快速排序算法是一种分治算法

D. 当输入数据基本有序时,快速排序算法具有最坏情况下的时间复杂度

(65)A. 45,12,30,25,67,52,85

B. 85,67,52,45,30,25,12

C. 12,25,30,45,52,67,85

D. 45,12,25,30,85,67,52


正确答案:B,A
试题(64)、(65)分析
  本题考查快速排序算法。
  快速排序算法是一种经典的排序算法,其基本思想是选择一个基准元素(通常选择第一个元素或者最后一个元素),通过一趟排序将待排序序列分成两部分,一部分比基准元素小,一部分大于等于基准元素,此时基准元素在其排好序后的正确位置;然后再递归地排序划分的两部分,因此本质上快速排序是一种分治算法。由于在排序的过程中,各元素与基准元素比较大小,若小于基准元素则与基准元素交换位置,因此该算法是不稳定的排序算法。当每一趟排序进行后,选择的基准元素恰好最大或者最小时,就把序列分成极端不均衡的两部分,即一部分为空,另一部分为待排序序列的元素个数减1,此时算法处于最坏情况,其时间复杂度为O(n2)。当输入数据基本有序或者所有元素值相等时,不论选择第一个元素还是最后一个元素作为基准元素,都恰好把序列分成极端不均衡的两部分,快速排序算法具有最坏情况下的时间复杂度。
  对于选项A,以45作为基准元素进行第一趟划分,先从后向前找出比45小的元素,67、52、85这三个元素保持不动,找到25,将其与45交换后,第一趟划分完成,序列为25,12,30,45,67,52,85。第二趟先对子序列25,12,30进行划分,使得25与12对调,形成子序列12,25,30;然后对67,52,85进行划分,使得67与52交换,形成子序列52,67,85。至此,整个排序过程完成。期间,第一趟划分中元素的比较次数为6次、交换1次,第二趟划分中元素的比较次数共4次、交换次数为2次,因此,排序过程中比较次数共10次,交换次数为3次。
  对于选项B,以85作为基准元素,因12比它小,所以将85与12交换,由于剩下的元素都比85小,因此保持不动,第一趟划分之后的元素序列为12,67,52,45,30,25,85,期间元素比较次数为6次、交换1次,第二趟对85之前的6个元素进行划分,由于67、52、45、30、25都比基准元素12大,因此它们保持不动,完成第二趟划分,形成的子序列为12,67,52,45,30,25,期间比较次数为5、交换次数为0。接下来第三趟对子序列67,52,45,30,25进行划分,以67为基准元素,情况与第一趟相同,进行4次比较、l次交换后,形成子序列25,52,45,30,67。第四趟对子序列25,52,45,30进行划分,情况与第二趟相同。依此类推,完成排序时比较次数为21次(6+5+4+3+2+1)。
  对于选项C,以12作为基准元素,因为后面的所有元素都比它大,所以所有元素是持不动,第一趟划分之后的元素序列为12,25,30,45,52,67,85,期间元素比较次数为6次、交换0次。第二趟对子序列25,30,45,52,67,85进行划分,以25作为基准元素,因为后面的所有元素都比它大,所以所有元素保持不动,第一趟划分之后的元素序列为25,30,45,52,67,85,期间元素比较次数为5次、交换0次。接下来对子序列30,45,52,67,85进行划分,同理,元素保持不动,期间元素比较次数为4次、交换0次。依此类推,完成整个排序比较次数为21次、交换0次。
  对于选项D,以45作为基准元素进行第一趟划分,先从后向前找出比45小的元素,85、67、52这三个元素保持不动,找到30,将其与45交换后,第一趟划分完成,序列30,12,25,45,85,67,52,期间元素比较次数为6次、交换1次。第二趟先对子序列30,12,25进行划分,以30为基准元素,30与25交换,经过2次比较、1次交换后子序列为25,12,30,需要再次对子序列25,12进行划分;同理,对子序列85,67,52进行划分后,结果为51,67,87,还需对子序列51,67进行划分。排序过程中比较次数共12次。
参考答案
  (64)B(65)A

 

第9题:

对序列(70,75,82,90,23,16)用快速排序方法进行排序,以序列的第一个元素为划分的基准。在第一趟划分后数据元素的排列是( )。

A.16,75,82,90,23,70

B.16,70,82,90,23,75

C.16,23,70,90,82,75

D.16,23,82,90,70,75


正确答案:A
解析:本题中进行快速排序时元素的移动如图17-1所示。可知当完成一趟排序后的序列是16,23,70,90,82,75。即选项C是正确答案。

第10题:

对序列{49,38,65,97,76,13,27,50}采用快速排序方法进行排序,以第一个元素为基准元素得到的划分结果是(55)。

A.13,27,38,49,76,97,65,50

B.27,38,13,49,76,97,65,50

C.27,38,13,49,50,76,65,97

D.27,13,38,49,76,97,65,50


正确答案:B
解析:一趟快速排序的具体做法是:附设两个指针LOW和HIGH,它们的初值分别为LOW和HIGH,设基准记录的关键字为K,则首先从HIGH所指位置起向前搜索找到第一个关键字小于K的记录和基准记录互相交换,然后从LOW所指位置起向后搜索,找到第一个关键字大子K的记录和基准记录互相交换,重复这两步一直到LOW=HIGH为止。由此可推出对于序列{49,38,65,97,76,13,27,50}按照从小到大采用快速排序方法进行排序得到{27,38,13,49,76,97,65,50}。

更多相关问题