10,15,12,18,19,36,45,21
10,15,12,18,19,45,36,21
15,10,12,18,19,36,45,21
10,15,12,19,18,45,36,21
以19为基准进行一趟排序,排序后左边的元素比19都小,右边的元素都比19大,故排除D 排序先从右到左找一个比19小的数(10),然后与19所在的位置进行交换,故可以排除C 再从左到右找一个比19大的数(21),然后与19交换,此时19在末尾,交换后可以排除B 再从右到左找比19小的数,未找到,此时,首尾指针相遇,结束此趟排序,得到答案A的结果
本题交换和填坑是结果是一样的,都是A。交换法过程如下,参考快排图解。设置19为基准数。先 j 从右往左找比19小的,后 i 从左往右找比19大的,交换之,反复,直到左右 i j 相会,交换基准数和相会位置的数。
21
10
1) 先从最后一个开始向前比较,找到比19小的数10,和19交换位置;
结果为:10, 15, 12, 18, 21, 36, 45, 19
2) 再从第一个开始向后比较,找到比19大的数21,和19交换位置;
结果为:10, 15, 12, 18, 19, 36, 45, 21
3) 然后从21开始向前比较,找到比19小的数,未找到,然后遇到19,排序结束;
结果为:10, 15, 12, 18, 19, 36, 45, 21(和步骤2一样)
前后哨兵,从后先开始,依次交替进行换序,直到,一分为二,左边小于区,右边大于区即可
我眼睛不好,看错了
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题