ここ 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]
誰かがこれを実装するのを手伝ってくれたら、とても感謝しています。
よろしく