Автор оригинала: Team Python Pool.
Сортировка по ячейкам в Python С алгоритмом и фрагментом кода
В этой статье мы рассмотрим алгоритм сортировки, известный как pigeonhole sort в Python. Итак, что же такое сорт голубятни? Это алгоритм сортировки, широко используемый для сортировки списков, в которых количество элементов в списке приблизительно равно диапазону возможных значений ключей. Давайте теперь разберемся с сортировкой по ячейкам в деталях.
Алгоритм сортировки по ячейкам в Python:
- Сначала мы найдем максимальное, а также минимальное значение в массиве. Найдя максимальное и минимальное значения, мы можем легко вычислить диапазон как (max-min +1)
- Теперь мы создадим пустой массив, имеющий тот же размер, что и диапазон. Пространство массива – это то, почему этот массив известен как pigeonholes.
- Теперь мы переберем исходный массив и поместим каждый элемент в соответствующую ячейку. Ячейка элемента a[i] вычисляется как индекс a[i]-mini
- Наконец, в исходном массиве мы снова вставим заполненные отверстия
Иллюстрация алгоритма:
Рассмотрим массив, имеющий элементы типа [12, 16, 19, 10, 9]
<сильный>Максимум
Минимальный элемент
Таким образом, диапазон = ( 19 – 9
Теперь мы создадим массив pigeonhole с индексом от 0 до 10
Теперь, когда массив pigeonhole создан, мы поместим каждый элемент из исходного массива в соответствующую ячейку
Алгоритм Pigeonhole
Иллюстрация
Здесь B – это массив голубей с индексом 0-10
<В соответствующих голубиных норах мы будем заполнять элементы из исходного массива
Наконец, в исходном массиве мы снова вставим заполненные отверстия, тем самым давая сортированный массив.
Реализация алгоритма сортировки Pigeonhole в Python:
def pigeonhole_sort(a): (a) (a) - minimum + 1 pigeonholes = [0] * size for i in a: pigeonholes[i - minimum] for count in range(size): while pigeonholes[count] > 0: pigeonholes[count] + minimum j a = [12, 16, 19, 10, 9] print("The array is :") print(a) print("Sorted array is :") pigeonhole_sort(a) print(a)
Выход:
Выход для сортировки по ячейкам
объяснение кода:
- Сначала мы нашли максимальное и минимальное значения, и из этого мы вычислили размер массива ячеек.
- После этого для индекса, соответствующего которому элементы присутствуют в исходном массиве, мы вставим значение 1 в массив pigeonhole.
- И, наконец, в оригинале href=”https://en.wikipedia.org/wiki/Array_data_structure”>array, мы снова вставим заполненные отверстия, таким образом давая сортированный массив. href=”https://en.wikipedia.org/wiki/Array_data_structure”>array, мы снова вставим заполненные отверстия, таким образом давая сортированный массив.
Анализ алгоритма сортировки Pigeonhole в Python:
- Временная сложность: O(n+K)
- Пространственная сложность: O(n+K)
Примечание:
- n – Размер массива
- K – Диапазон значений
Преимущества:
- Сортировка по ячейкам-это сортировка, основанная не на сравнении, что делает ее более быстрой в применении
- Это стабильный алгоритм сортировки
- Он выполняет сортировку в линейном времени
Недостатки:
- Нелегко узнать диапазон чисел для сортировки
- Это число может работать только с нулевыми и положительными целыми числами
Должен Читать
- Сортировка вставки в Python [Программа, алгоритм, Пример]
- Понимание сортировки пузырьков Python с примерами
- Алгоритм сортировки оболочки и программа на Python
- Понимание Сортировки прядей в Python На примере
Вывод:
В этой статье мы узнали об алгоритме pigeonhole. Его реализация в python, его преимущества, а также его недостатки. Все алгоритмы сортировки имеют свои плюсы и минусы. Если количество элементов и их диапазон одинаковы, алгоритм pigeonhole будет разумным выбором.
Однако, если у вас есть какие-либо сомнения или вопросы, дайте мне знать в разделе комментариев ниже. Я постараюсь помочь вам как можно скорее.
Счастливого Пифонирования!