Я пытаюсь получить алгоритм средней быстрой сортировки, реализованный в python, но не могу понять, что не так и почему он не работает
from statistics import median
def Swap(arr, posA, posB):
arr[posA], arr[posB] = arr[posB], arr[posA]
def Median(array):
medianValue = median([array[0], array[int(len(array)/2)], array[-1]])
return array.index(medianValue)
def Partition(array, start, end):
pivot = array[end]
i = start-1
for j in range(start, end):
if array[j] <= pivot:
i += 1
Swap(array, i, j)
Swap(array, i+1, end)
return i + 1
def Quicksort(array, startInd, endInd):
if startInd < endInd:
medianIndex = Median(array)
Swap(array, medianIndex, endInd)
pivot = Partition(array, startInd, endInd)
Quicksort(array, startInd, pivot - 1)
Quicksort(array, pivot + 1, endInd)
Спасибо за любую помощь:)