Как добавить дополнительное кодирование для шагов / переходов в код Quicksort - PullRequest
0 голосов
/ 10 мая 2019

Следующий код требует дополнительного кодирования для шагов / проходов для этого кодирования быстрой сортировки.

Кажется, я не знаю, как добавить его, чтобы показать процесс кодирования Quicksort в интерпретаторе Python.

Выход:

['Гусь', 'Як', 'Муравей', 'Собака', 'Лось', 'Корова', 'Курица', 'Крыса', 'Лягушка', 'Жук']

['Муравей', 'Жук', 'Корова', 'Собака', 'Лягушка', 'Гусь', 'Курица', 'Лось', 'Крыса', 'Як']

Но я бы хотел включить кодирование, чтобы показать процесс между выходами.

def quicksort(Item):
        print(Item)
        quickSort(Item)
        return(Item)

def quickSort(Item):
            quickSortHelper(Item,0,len(Item)-1)

def quickSortHelper(Item,first,last):
        if first<last:
            splitpoint = partition(Item,first,last)
            quickSortHelper(Item,first,splitpoint-1)
            quickSortHelper(Item,splitpoint+1,last)

def partition(Item,first,last):
        pivotvalue = Item[first]
        leftmark = first+1
        rightmark = last
        done = False
        while not done:
            while leftmark <= rightmark and Item[leftmark] <= pivotvalue:
                leftmark = leftmark + 1
            while Item[rightmark] >= pivotvalue and rightmark >= leftmark:
                rightmark = rightmark -1
            if rightmark < leftmark:
                done = True
            else:
                temp = Item[leftmark]
                Item[leftmark] = Item[rightmark]
                Item[rightmark] = temp
        temp = Item[first]
        Item[first] = Item[rightmark]
        Item[rightmark] = temp
        return(rightmark)

mylist = ["Goose","Yak","Ant","Dog","Moose","Cow","Hen","Rat","Frog","Beetle"]
print(quicksort(mylist))

1 Ответ

0 голосов
/ 15 мая 2019

Пример добавления print() может быть:

def quickSortHelper(Item,first,last):
    if first<last:
        splitpoint = partition(Item,first,last)
        print(first, splitpoint, last)
        quickSortHelper(Item,first,splitpoint-1)
        quickSortHelper(Item,splitpoint+1,last)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...