2019 数据结构 排序算法 选择题
第 10 题

排序过程中,对尚未确定最终位置的所有元素进行一遍处理称为一“趟”。下列序列中,不可能是快速排序第二趟结果的是( )。

排序算法

A. 5,2,16,12,28,60,32,72 B. 2,16,5,28,12,60,32,72 C. 2,12,16,5,28,32,72,60 D. 5,2,12,28,16,32,72,60

[tag_link]

正确答案:D

快速排序每趟都将基准元素放在其最终位置,然后以它为基准将序列划分为两个子序列,基准左边都比基准小,右边都比基准大。排序过程中,对尚未确定最终位置的所有元素进行一遍处理称为一“趟”,故快速排序第一趟被枢轴分成的 两个子序列 在第二趟中应该 各放一个枢轴 在最终位置(也即如果第一趟的枢轴在中间,第二趟应该至少有 3 个元素在最终位置),如果枢轴的位置正好在首端或尾端,那第一趟就只被分成了 一个序列,那第二趟只能放 一个枢轴 在最终位置(也即如果枢轴在首尾,第二趟应该至少有 2 个元素在最终位置)

  • A 中,第一次快排选的基准值是 72,第二次的基准值是 28。
  • B 中,第一次的基准值是 72,第二次的是 2。
  • C 中,第一次的基准值是 28,第二次的基准值是 2 和 32。所以答案选择 D。