У меня есть то, что должно быть простой реализацией quicksort, но она возвращает ошибку рекурсии, превышающую ошибку, и я тестирую ее в списке из менее чем 30 элементов. Более того, моя реализация работала над списком из 10 000 несколько дней назад, и единственное, что я изменил, это переместить его из класса в глобальную. Кто-нибудь видит, что может быть причиной этого?QuickSort Возвращаемая ошибка глубины рекурсии
def quickSort(m, left, right):
if len(m[left:right]) <= 1:
return m
pivot = m[left]
i = left + 1
j = left + 1
for j in range(j, right):
if m[j] <= pivot:
m[j], m[i] = m[i], m[j]
i += 1
m[left], m[i-1] = m[i-1], m[left]
m = quickSort(m, left, i)
m = quickSort(m, i, right)
return m
'для j в диапазоне (j, справа): 'это не может быть хорошим (для удобства чтения) – amit
Добавьте несколько операторов печати и запустите их, чтобы увидеть, как они прогрессируют. –