我已经尝试实现快速排序 2 天了(看起来我的编程技能已经生锈了)。我不知道我做错了什么。我正要放弃,所以我想我应该咨询讨论论坛。
这是我试图在 python 中实现的代码。但它没有给出预期的结果。任何人都可以请指出我做错了什么?
def QuickSort(A,p,r):
if p < r:
pivotIndex = Partition(A,p,r)
QuickSort(A,p,pivotIndex-1)
QuickSort(A,pivotIndex+1,r)
return A
def Partition(A,p,r):
m = A[p]
i = p+1
for j in range( p+1 , r ):
if A[j] < m:
A[j] , A[i] = A[i] , A[j]
i+=1
A[p], A[i-1] = A[i-1] , A[p]
return i-1
测试输入的输出是:
>>>QuickSort([9,8,7,6,5,4,3,2,1],0,9)
[1, 3, 5, 6, 7, 4, 8, 2, 9]
如果有人帮助我实现这一点,我将非常感激。
问候