Для алгоритма CLRS для быстрой сортировки,
У меня проблемы с отслеживанием всех вызовов для входа A = [2,1,3].
QuickSort(A,p,r)
if p < r
q = Partition(A,p,r)
QuickSort(A,p,q-1)
QuickSort(A,q+1,r)
Partition(A,p,r)
x = A[r]
i = p - 1
for j = p to r - 1
if A[j] <= x
i = i + 1
swap (A[i], A[j])
swap(A[i+1], A[r])
return i+1
Вот мои вызовы функций для массива A:
QuickSort (A, 1,3)
Раздел (A, 1,3)
QuickSort (A, 1,2)
Разделение (A, 1,2)
- QuickSort (A, 1,0)
- QuickSort (A, 2,3)
- Раздел (A, 2,3)
- QuickSort (A, 1,2)
Почему он зацикливается с 8 на?