校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > 数据结构 > 快速排序
题目

有字符序列 {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.步长为 4 的希尔排序

D.步长为 2 的希尔排序

解答

正确答案是 B

如果是二路归并的话,那么第一趟结束后每四个都是有序的
如果是快速排序的话,第一个元素将会被放到一个最准确的位置,且第一个元素前面的都比它小,后面的都比它大
如果是shell排序的话,那么每个小分组内将会是有序的
如果是堆排序的话,那么把它构成一颗二叉树的时候,该堆要么就是大根堆,要么就是小根堆
如果是冒泡的话,那么肯定会有数据下沉的动作
C 3条回复 评论
子不语

排序一轮后,Q的前面都比他小,后面都比他大,这种排序基本上就是快速排序

发表于 2018-10-13 11:32:19
0 0
小茉莉

如果是F堆排序,则则一趟排序后,最大值Y会排在最后;

同理,如果是E冒泡排序,最大值Y会排在最后;
CD选项验证一下就知道不对;
如果是A二路归并排序,则则一趟排序后,只会改变前面两个元素的序列;

B快速排序,一趟排序后,将第一个元素Q排在了最后正确排序序列中的正确位置;

发表于 2018-10-13 11:32:08
0 0
途安米

二路归并:H Q C Y A P M S D R F X
快速排序:F,H,C,D,P,A,M,Q,R,S,Y,X
冒泡排序:第一趟有A在第一位
堆排序:第一趟Y排在最后

发表于 2018-10-13 11:31:46
0 0