Следующий код требует дополнительного кодирования для шагов / проходов для этого кодирования быстрой сортировки.
Кажется, я не знаю, как добавить его, чтобы показать процесс кодирования 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))