def quicksort(array):
# Базовый случай: список с 0 или 1 элементом уже «отсортирован»
if len(array) < 2:
return array
# Рекурсивный случай
pivot = array[0]
less = [i for i in array[1:] if i <= pivot] # Элементы меньше или равные опорному
greater = [i for i in array[1:] if i > pivot] # Элементы больше опорного
return quicksort(less) + [pivot] + quicksort(greater)
# Тест
print(quicksort([10, 5, 6, 5, 2, 3]))
ZGVmIHF1aWNrc29ydChhcnJheSk6CiAgICAjINCR0LDQt9C+0LLRi9C5INGB0LvRg9GH0LDQuTog0YHQv9C40YHQvtC6INGBIDAg0LjQu9C4IDEg0Y3Qu9C10LzQtdC90YLQvtC8INGD0LbQtSDCq9C+0YLRgdC+0YDRgtC40YDQvtCy0LDQvcK7CiAgICBpZiBsZW4oYXJyYXkpIDwgMjoKICAgICAgICByZXR1cm4gYXJyYXkKICAgIAogICAgIyDQoNC10LrRg9GA0YHQuNCy0L3Ri9C5INGB0LvRg9GH0LDQuQogICAgcGl2b3QgPSBhcnJheVswXQogICAgbGVzcyA9IFtpIGZvciBpIGluIGFycmF5WzE6XSBpZiBpIDw9IHBpdm90XSAgICAjINCt0LvQtdC80LXQvdGC0Ysg0LzQtdC90YzRiNC1INC40LvQuCDRgNCw0LLQvdGL0LUg0L7Qv9C+0YDQvdC+0LzRgwogICAgZ3JlYXRlciA9IFtpIGZvciBpIGluIGFycmF5WzE6XSBpZiBpID4gcGl2b3RdICAjINCt0LvQtdC80LXQvdGC0Ysg0LHQvtC70YzRiNC1INC+0L/QvtGA0L3QvtCz0L4KICAgIAogICAgcmV0dXJuIHF1aWNrc29ydChsZXNzKSArIFtwaXZvdF0gKyBxdWlja3NvcnQoZ3JlYXRlcikKCiMg0KLQtdGB0YIKcHJpbnQocXVpY2tzb3J0KFsxMCwgNSwgNiwgNSwgMiwgM10pKQo=