快速排序和归并排序一样,也使用了分治思想。

最关键的步骤是分解,例如,对数组A[p..r]进行分解。划分为2个子数组A[p..q - 1]和A[q + 1..r]。A[p..q - 1]中每一个元素都小于等于A[q],A[q + 1..r]中的每一个元素都大于等于A[q]。

伪码:

 1 PARTITION(A,p,r)
 2 {
 3   x = A[r];
 4   i  = p - 1;
 5   for j = p to r -1
 6        if A[j] <= x
 7           i = i + 1
 8           exchange A[i] with A[j]
 9   exchange A[i + 1] with A[r]
10   return i + 1
11 }
View Code

相关文章:

  • 2021-10-17
  • 2021-08-10
  • 2021-10-19
  • 2021-07-19
猜你喜欢
  • 2021-10-11
  • 2021-12-28
  • 2021-10-23
  • 2021-12-29
  • 2021-11-08
相关资源
相似解决方案