Где ошибка в моих кодах для реализации быстрой сортировки? - PullRequest
0 голосов
/ 26 марта 2019

Я написал некоторый код на 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...