我一直在嘗試實現2天內的快速排序(看起來像我的編程技能正在生鏽)。我不知道我做錯了什麼。我即將放棄,所以我想我應該參考討論論壇。難以實施QuickSort
這裏是我試圖在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]
,我將非常感激如果有人幫助我在執行本。
Regards
'快速排序(A [0:pivotIndex])'就已經排除了'pivotIndex',所以我不認爲你不需要減去1. –
我已經完成了這項工作,但我仍然得到相同的結果:/ – InspiredCoder
您的單字母命名方案不必難以破譯。如果你使用了更多的信息名稱,人們可以更容易地提供幫助。 – user2357112