Сегодня простая, но красивая сортировка. Ни чем не хуже, кстати, пузырьковой и чем-то на нее похожая. Почему гномья? Просто так сортирует гном цветочные горшки.
Вкратце опишем этот алгоритм. Будем двигаться с нулевого элемента в сторону конца массива. Если текущий элемент больше следующего, то переставляем их и при этом делаем шаг назад (учитывая границу массива). Зачем делать шаг назад? Просто перестановка может привести к необходимости еще одной перестановки в предыдущих элементах. Если же данный элемент меньше следующего, то мы делаем шаг вперед. В результате "гном" движется то вперед, то назад и заканчивает свой путь в конце массива (см. p6010.py). Не правда ли красиво? |