QuickSort中PARITION与HOARE-PARITION之分析

最初的parittion版本:
HOARE-PARTITION(A, p, r)
xA[p]
ip - 1
jr + 1
while TRUE
 5      do repeat jj - 1
 6           until A[j] ≤ x
 7         repeat ii + 1
 8           until A[i] ≥ x
 9         if i < j
10            then exchange A[i] ↔ A[j]
11            else return j

 
改进后的版本:

PARTITION(A, p,r)

xA[r]

ip - 1

for jp to r- 1

4       do if A[j] ≤ x

5             then ii +1

6                  exchange A[i] ↔A[j]

7  exchange A[i + 1] ↔ A[r]

return i + 1


改进后有什么变化呢?
1.PARITION只需用一个i指针,x[i]为分割成三个部分。
2.HOARE-PARITION用了两个指针i及j,但未分割成三个区间,而是获得两个区间,X[p...i] <= X[p],X[j...r] >= X[p]。3.左边的部分小于分割主元,而大于j的部分大于分割主元,当while终止时,p<=j<=i<r(假设至少有2个元素),则X[j+1...r]>=X[p], X[1...j] <= X[p].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值