经典指数          
原因
3239
浏览数
0
收藏数
 

对关键码序列28,16,32,12,60,2,5,72快速排序,从小到大一次划分结果为()
  • (2,5,12,16)28(60,32,72)
  • (5,16,2,12)28(60,32,72)
  • (2,16,12,5)28(60,32,72)
  • (5,16,2,12)28(32,60,72)

     举报   纠错  
 
切换
1 个答案

以28为基准,因为一般都是以a[0]基准,从两端开始扫描

规则是:

1.从右边扫描时,记录比基准小的元素的下标j

2.从左边扫描时,记录比基准大的元素的下标i

3.  if(若此时两个下标 i = j){

        当前下标的元素与基准进行交换,结束一次划分

        把原有序列分为两端重新划分

    }

    else{

        执行第四步骤

    }

4.这时开始交换两个下标对应的元素

5.以当前的位置开始,继续从1开始

第一次交换32和5    28 16 5 12 60 2 32 72

第二次交换60和2    28 16 5 12 2 60 32 72

第三次交换28和2    2 16 5 12 28 60 32 72

第一次划分完成    这题没有正确选项 因为再第一次划分中,12是不会和其他元素交换的

 
切换
撰写答案