_RayBoy_

1.5 Метод быстрой сортировки

Feb 18th, 2022
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.35 KB | None | 0 0
  1. """Суть данного метода состоит в том, что он разбивает массив на две части,
  2.   переупорядочив его элементы. В первой части соберем элементы, меньшие или
  3.   равные опорному числу, а во второй части — большие или равные опорному числу.
  4.   Теперь достаточно отсортировать обе части, после чего выполнить их слияние"""
  5.  
  6. from random import randint, sample
  7.  
  8. data = [i for i in range(101)]  # Сгенерированный лист от 0 до 100
  9. work_data = sample(data,
  10.                    randint(3, 21))  # Рандомно-выбранные уникальные числа из data в рандомном количестве от 3 до 20
  11. print("Исходный список:", work_data)
  12.  
  13. def quick_sort(li):
  14.     if len(li) > 1:
  15.         x = li[0]  # Опорное число
  16.         low = [i for i in li if i < x]  # Меньшие
  17.         eq = [i for i in li if i == x]  # Равные
  18.         hi = [i for i in li if i > x]  # Большие
  19.         li = quick_sort(low) + eq + quick_sort(hi)  # Рекурсия
  20.     return li
  21.  
  22.  
  23. print("Отсортированный список:", quick_sort(work_data))
Add Comment
Please, Sign In to add comment