кодесурса
«Python

Структуры данных и алгоритмы Python: быстрая сортировка

script1adsense2code
script1adsense3code

Поиск и сортировка в Python: упражнение 9 с решением

Напишите программу на Python для сортировки списка элементов с использованием алгоритма быстрой сортировки.
Примечание. Согласно Википедии «Быстрая сортировка - это сортировка сравнения, это означает, что она может сортировать элементы любого типа, для которых определено отношение« меньше »(формально, общий порядок). В эффективных реализациях это не стабильная сортировка, Это означает, что относительный порядок элементов одинаковой сортировки не сохраняется. Быстрая сортировка может работать на месте с массивом, требуя небольших дополнительных объемов памяти для выполнения сортировки. "

Пример решения :

Код Python:

def quickSort(data_list):
   quickSortHlp(data_list,0,len(data_list)-1)
def quickSortHlp(data_list,first,last):
   if first < last:
       splitpoint = partition(data_list,first,last)
       quickSortHlp(data_list,first,splitpoint-1)
       quickSortHlp(data_list,splitpoint+1,last)
def partition(data_list,first,last):
   pivotvalue = data_list[first]
   leftmark = first+1
   rightmark = last
   done = False
   while not done:
       while leftmark <= rightmark and data_list[leftmark] <= pivotvalue:
           leftmark = leftmark + 1
       while data_list[rightmark] >= pivotvalue and rightmark >= leftmark:
           rightmark = rightmark -1
       if rightmark < leftmark:
           done = True
       else:
           temp = data_list[leftmark]
           data_list[leftmark] = data_list[rightmark]
           data_list[rightmark] = temp
   temp = data_list[first]
   data_list[first] = data_list[rightmark]
   data_list[rightmark] = temp
   return rightmark
data_list = [54,26,93,17,77,31,44,55,20]
quickSort(data_list)
print(data_list)

Пример вывода:

 [17, 20, 26, 31, 44, 54, 55, 77, 93] 

Блок - схема:

«Блок-схема:

Редактор кода Python:

Внесите свой код и комментарии через Disqus.

Предыдущий: Напишите программу на Python для сортировки списка элементов с использованием алгоритма сортировки слиянием.
Далее: Написать программу Python Program для подсчета сортировки.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code