首页 > 试题广场 >

设一组初始关键字记录关键字为(20,15,14,18,21,

[单选题]

设一组初始关键字记录关键字为(2015141821364010),则以20为基准记录的一趟快速排序结束后的结果为(  )

  • 10,15,14,18,20,36,40,21
  • 10,15,14,18,20,40,36,21
  • 10,15,14,20,18,40,36,2l
  • 15,10,14,18,20,36,40,21
一趟快速排序的算法是:
1)设置两个变量i、j,排序开始的时候:i=0,j=N-1;
2)以第一个数组元素作为关键数据,赋值给key,即key=A[0];
3)从j开始向前搜索,即由后开始向前搜索(j--),找到第一个小于key的值A[j],将A[j]和A[i]互换;
4)从i开始向后搜索,即由前开始向后搜索(i++),找到第一个大于key的A[i],将A[i]和A[j]互换;
5)重复第3、4步,直到i=j;
发表于 2018-02-25 14:56:02 回复(0)
不会的话查一下什么叫快速排序就清楚了
发表于 2017-05-21 10:02:36 回复(0)

快速排序就是以一个基准元素为中心,把小于它的数放在左边,大于它的数放在右边。把基准数放在中间,接着对基准数两边的元素做同样的操作。要注意的是,扫描的方法,在这里是用两个指针,分别指向数组的最低位和最高位,从高往低,找第一个比基准元素小的,放在基准元素的位置,然后从低往高找第一个比基准元素大的,放在高位指针停留的地方。

发表于 2019-11-24 13:20:50 回复(0)
基准值是不变的。
发表于 2019-05-22 08:23:14 回复(0)