Умеете ли работать с функцией sorted в Python?
Встроенная в Python функция сортировки элементов существенно упрощает жизнь разработчикам. Она быстро работает и позволяет отсортировать по возрастанию или убыванию.
Проверьте, предугадаете ли вы поведение кода с
https://pythonist.ru/test-sortirovka-python/
#тесты #python #сортировка
Встроенная в Python функция сортировки элементов существенно упрощает жизнь разработчикам. Она быстро работает и позволяет отсортировать по возрастанию или убыванию.
Проверьте, предугадаете ли вы поведение кода с
sorted()
:https://pythonist.ru/test-sortirovka-python/
#тесты #python #сортировка
👍4💩3
This media is not supported in your browser
VIEW IN TELEGRAM
Популярные способы сортировки и визуализация их работы
Существует множество способов отсортировать данные. Ниже вы увидите несколько из них. А выше наглядная демонстрация, как работает каждый способ.
Selection Sort (Сортировка выбором): Находит минимальный элемент в несортированной части массива и перемещает его в начало. Прост, но медленный на больших данных. Сложность сортировки: \( O(n^2) \).
Insertion Sort (Сортировка вставками): Поэлементно добавляет элементы в правильное место в отсортированной части массива. Хорошо работает на почти отсортированных данных. Сложность сортировки: \( O(n^2) \) в худшем случае, \( O(n) \) в лучшем.
Heap Sort (Пирамидальная сортировка): Использует двоичную кучу для последовательного извлечения максимального элемента и его размещения в конце массива. Стабильный алгоритм. Сложность сортировки: \( O(n \log n) \).
Bubble Sort (Пузырьковая сортировка): Попарно сравнивает соседние элементы и меняет их местами, если они в неправильном порядке. Самый простой, но крайне неэффективный метод. Сложность сортировки: \( O(n^2) \).
Cocktail Sort (Коктейльная сортировка): Двусторонний вариант пузырьковой сортировки, проходит массив в прямом и обратном направлении, уменьшая количество проверок. Сложность сортировки: \( O(n^2) \).
Circle Sort (Круговая сортировка): Рекурсивно сравнивает и обменивает элементы, находящиеся на противоположных концах массива, эффективно упорядочивая данные. Сложность сортировки: \( O(n \log n) \) в среднем.
Merge Sort (Сортировка слиянием): Делит массив на части, сортирует каждую часть отдельно и сливает их в один отсортированный массив. Эффективен для больших данных, но требует дополнительной памяти. Сложность сортировки: \( O(n \log n) \).
Quick Sort (Быстрая сортировка): Выбирает опорный элемент, делит массив на элементы меньше и больше него, сортирует их рекурсивно. Один из самых быстрых алгоритмов, но чувствителен к выбору опорного элемента. Сложность сортировки: \( O(n \log n) \) в среднем, \( O(n^2) \) в худшем случае.
Shell Sort (Сортировка Шелла): Улучшение вставок, использующее сортировку с убывающим шагом. Быстрее, чем классические вставки, но зависит от выбора шага. Сложность сортировки: \( O(n^{3/2}) \) в среднем.
#сортировка
Существует множество способов отсортировать данные. Ниже вы увидите несколько из них. А выше наглядная демонстрация, как работает каждый способ.
Selection Sort (Сортировка выбором): Находит минимальный элемент в несортированной части массива и перемещает его в начало. Прост, но медленный на больших данных. Сложность сортировки: \( O(n^2) \).
Insertion Sort (Сортировка вставками): Поэлементно добавляет элементы в правильное место в отсортированной части массива. Хорошо работает на почти отсортированных данных. Сложность сортировки: \( O(n^2) \) в худшем случае, \( O(n) \) в лучшем.
Heap Sort (Пирамидальная сортировка): Использует двоичную кучу для последовательного извлечения максимального элемента и его размещения в конце массива. Стабильный алгоритм. Сложность сортировки: \( O(n \log n) \).
Bubble Sort (Пузырьковая сортировка): Попарно сравнивает соседние элементы и меняет их местами, если они в неправильном порядке. Самый простой, но крайне неэффективный метод. Сложность сортировки: \( O(n^2) \).
Cocktail Sort (Коктейльная сортировка): Двусторонний вариант пузырьковой сортировки, проходит массив в прямом и обратном направлении, уменьшая количество проверок. Сложность сортировки: \( O(n^2) \).
Circle Sort (Круговая сортировка): Рекурсивно сравнивает и обменивает элементы, находящиеся на противоположных концах массива, эффективно упорядочивая данные. Сложность сортировки: \( O(n \log n) \) в среднем.
Merge Sort (Сортировка слиянием): Делит массив на части, сортирует каждую часть отдельно и сливает их в один отсортированный массив. Эффективен для больших данных, но требует дополнительной памяти. Сложность сортировки: \( O(n \log n) \).
Quick Sort (Быстрая сортировка): Выбирает опорный элемент, делит массив на элементы меньше и больше него, сортирует их рекурсивно. Один из самых быстрых алгоритмов, но чувствителен к выбору опорного элемента. Сложность сортировки: \( O(n \log n) \) в среднем, \( O(n^2) \) в худшем случае.
Shell Sort (Сортировка Шелла): Улучшение вставок, использующее сортировку с убывающим шагом. Быстрее, чем классические вставки, но зависит от выбора шага. Сложность сортировки: \( O(n^{3/2}) \) в среднем.
#сортировка
👍15🤓1
Энтузиаст создал сортировку имени Сталина
Нет, правда! Она так и называется «Милосердная сортировка имени Сталина». И это доработанная версия обычной сортировки имени Сталина, которая отбрасывает элементы, расположенные не по порядку.
В новой сортировке применён рекурсивный метод. Здесь элементы, расположенные по-порядку, сохраняются, а остальные рекурсивно перебираются, пока не будет отсортировано всё.
После всех измерений оказалось, что такой метод быстрее, чем быстрая сортировка и сортировка слиянием.
Более подробно о своём проекте и исследовании рассказал автор на GitHub. Там и про различные бенчмарки, и про сложности с реализацией, и возможные улучшения. Материал интересный и полезный, так что не поленитесь перейти по ссылке и почитать.
#ненормальноепрограммирование #сортировка
Нет, правда! Она так и называется «Милосердная сортировка имени Сталина». И это доработанная версия обычной сортировки имени Сталина, которая отбрасывает элементы, расположенные не по порядку.
В новой сортировке применён рекурсивный метод. Здесь элементы, расположенные по-порядку, сохраняются, а остальные рекурсивно перебираются, пока не будет отсортировано всё.
После всех измерений оказалось, что такой метод быстрее, чем быстрая сортировка и сортировка слиянием.
Более подробно о своём проекте и исследовании рассказал автор на GitHub. Там и про различные бенчмарки, и про сложности с реализацией, и возможные улучшения. Материал интересный и полезный, так что не поленитесь перейти по ссылке и почитать.
#ненормальноепрограммирование #сортировка
✍6💊3🌭1🍌1