Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """Суть данного метода состоит в том, что он разбивает массив на две части,
- переупорядочив его элементы. В первой части соберем элементы, меньшие или
- равные опорному числу, а во второй части — большие или равные опорному числу.
- Теперь достаточно отсортировать обе части, после чего выполнить их слияние"""
- from random import randint, sample
- data = [i for i in range(101)] # Сгенерированный лист от 0 до 100
- work_data = sample(data,
- randint(3, 21)) # Рандомно-выбранные уникальные числа из data в рандомном количестве от 3 до 20
- print("Исходный список:", work_data)
- def quick_sort(li):
- if len(li) > 1:
- x = li[0] # Опорное число
- low = [i for i in li if i < x] # Меньшие
- eq = [i for i in li if i == x] # Равные
- hi = [i for i in li if i > x] # Большие
- li = quick_sort(low) + eq + quick_sort(hi) # Рекурсия
- return li
- print("Отсортированный список:", quick_sort(work_data))
Add Comment
Please, Sign In to add comment