Я пытаюсь реализовать quicksort как 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]
Я буду очень благодарен, если кто-нибудь мне помочь в осуществлении этого.
С уважением
'QuickSort (A [0: pivotIndex])' уже будет исключить 'pivotIndex', поэтому я не Думаю, вам нужно вычесть 1. –
Я сделал это, но все равно получаю тот же результат:/ – InspiredCoder
Ваша однобуквенная схема именования излишне затруднительна для расшифровки. Если бы вы использовали более информативные имена, людям было бы легче помочь. – user2357112