Я написал реализацию Quicksort в Python, используя алгоритм, который преподавал Седжвик в своем курсе. Я не могу сортировать его должным образом. Что не так с кодом?Невозможно реализовать Quicksort
def partition(a, lo, hi):
i = lo
j = hi
v = a[lo]
while(True):
while(a[i] < v):
i += 1
if (i == hi): break
while(a[j] > v):
j -= 1
if (j == lo): break
if (i >= j): break
a[i], a[j] = a[j], a[i]
a[lo], a[j] = a[j], a[lo]
return j
def sort(a, lo, hi):
if (hi <= lo):
return
q = partition(a, lo, hi)
sort(a, lo, q-1)
sort(a, q+1, hi)
assert isSorted(a, lo, hi)
def quick_sort(a):
shuffle(a)
sort(a, 0, len(a)-1)
assert isSortedArray(a)
Кроме того, вам не хватало удачи в выборе сообщества StackExchange спросить, если ничего другого. (Как вы сортируете одну реализацию quicksort?) – greybeard