首页 > 试题广场 >

设一组初始记录关键字序列为(60,80,55,40,42,8

[单选题]

设一组初始记录关键字序列为(608055404285),则以第一个关键字60为基准而得到的一趟快速排序结果是()。

  • 40,42,60,55,80,85
  • 42,45,55,60,85,80
  • 42,40,55,60,80,85
  • 42,40,60,85,55,80
牛客对快排的方法每次取得都不同,这次是从后面开始,有的又是从前面开始
发表于 2018-03-28 13:22:07 回复(0)
照着答案推的话这题是从最后边开始往前的单路快排。
发表于 2017-09-03 21:15:14 回复(0)
C
快排无论是选择最后一个还是第一个第一趟第一遍排序默认都是选距离最远的那一个数,进行比较后切换另一端再进行比较,通俗的说就是前一趟后一趟直到high与low重合,一趟结束。本题以60为基准,第一趟排序过程如下:
60 80 55 40 42 85 (60)
42 80 55 40 42 85 (60)
42 80 55 40 80 85 (60)
42 40 55 40 80 85 (60)
42 40 55 55 80 85 (60)
此时将第二个55替换成60,第一趟结束。
所以结果为42 40 55 60 80 85,后续再以60左右两端分别再进行快排,故不再赘述。排序过程中不必进行置换。
发表于 2019-04-16 16:23:26 回复(0)