【发布时间】:2020-10-25 05:59:02
【问题描述】:
algorithm quicksort(A, lo, hi) is
if lo < hi then
p := partition(A, lo, hi)
quicksort(A, lo, p)
quicksort(A, p + 1, hi)
algorithm partition(A, lo, hi) is
pivot := A[⌊(hi + lo) / 2⌋]
i := lo - 1
j := hi + 1
loop forever
do
i := i + 1
while A[i] < pivot
do
j := j - 1
while A[j] > pivot
if i ≥ j then
return j
swap A[i] with A[j]
我试图在Quicksort/Hoare_partition_scheme 中找到以下问题的明确答案,但我无法找到,尽管手动尝试了一些示例表明以下内容很可能是正确的...... 我的问题是,它是否总是可以保证
-
partition返回所选枢轴的位置 - 返回
i或j是否重要,或者说算法停在i==j - 在
quicksort中调用是(lo,p-1) and (p,hi)还是(lo,p) and (p+1,hi)是否重要
【问题讨论】:
标签: algorithm sorting quicksort