Я написал некоторый код на Python для реализации алгоритма быстрой сортировки.
По сравнению с другими кодами разницы нет.
Однако при выводе какого-то списка изменений нет (вообще не отсортировано).
Я не могу найти ошибки.
# Quick sort algorithm
#func. to devide the array for one given pivot
def part_by_pivot(array, left, right, pivot):
leftindex = left #initial index of given array
rightindex = right - 1 #'right' is the size of given array
while True:
#finding left value less than the pivot
for i in range(len(array)):
if array[leftindex] < pivot:
leftindex += i
break
#finding left value less than the pivot
for i in range(len(array)):
if array[rightindex] > pivot and rightindex > 0:
rightindex -= i
break
if leftindex > rightindex:
leftindex, rightindex = rightindex, leftindex
else:
break
#pivot swapped
leftindex, right = right, leftindex
return leftindex
#func. to do quick sort method
def quicksort(array, left, right):
#base case
if right-left <= 0:
return
#recursive call
else:
pivot = array[right-1]
partitionPoint = part_by_pivot(array, left,right-1,pivot)
quicksort(array, left, partitionPoint-1)
quicksort(array, partitionPoint+1, right-1)
alist = [54,26,93,17,77,31,44,55,20]
quicksort(alist, 0, len(alist))
print(alist)