现在的位置: 首页 > 综合 > 正文

《算法导论》第七章-快速排序(伪代码)

2018年05月01日 ⁄ 综合 ⁄ 共 578字 ⁄ 字号 评论关闭

快速排序

伪代码:

 QuickSort(A,p,r)
       if p<r
            q = Partition(A,p,r)    //确定划分位置
            QuickSort(A,p,q-1)     //子数组A[p...q-1]
            QuickSort(Q,q+1,r)     //子数组A[q+1...r]

end


//快速排序关键过程是对数组进行划分,划分过程需要选择一个主元素(pivot element)作为参照,围绕着这个主元素进划分子数组

Partition(A,p,r) //p、r为数组下标
      x = A[r]   //将最后一个元素作为主元素
      i = p-1 // i指向的是比主元素小的位置,
      for  j = p  to  r-1     //从第一个元素开始到倒数第二个元素结束,比较确定主元素的位置
          do  if  A[j] <= x
                       then  i = i+1 //如果比主元素小,则把i=i+1的位置上的元素和j位置发现小元素互换
                                exchange A[i] <-> A[j]
      exchange A[i+1]<->A[r]   //最终确定主元的位置
      return i+1   //返回主元的位置

end


详细参考:http://www.cnblogs.com/Anker/archive/2013/01/24/2875234.html



抱歉!评论已关闭.