О Сортировке

В чём смысл реализации алгоритмов сортировки, если всё равно придётся делать её самому?

  • Модуль состоит из экрана внизу и пяти кнопок, обозначенных двузначными числами. Обратитесь к алгоритму, указанному на экране.

  • Позиции считаются относительно их положения слева направо, игнорируя вертикальные отклонения. Например, нижняя левая кнопка классифицируется как 1-ая позиция.

  • Модуль решается путём упорядочивания кнопок от наименьшего к наибольшему числу (слева направо), и провоцирует ошибку, если перестановка не следует алгоритму.
Сортировка пузырьком (Bubble)
Поменяйте местами если...
Число в 1-ой позиции больше числа во 2-ой позиции.
Число во 2-ой позиции больше числа в 3-ей позиции.
Число в 3-ей позиции больше числа в 4-ой позиции.
Число в 4-ой позиции больше числа в 5-ой позиции.
Повторите сортировку пузырьком.
Медленная сортировка (Slow)
Поменяйте местами если...
Число в 1-ой позиции больше числа во 2-ой позиции.
Число во 2-ой позиции больше числа в 3-ей позиции.
Число в 1-ой позиции больше числа во 2-ой позиции.
Число в 4-ой позиции больше числа в 5-ой позиции.
Число в 3-ей позиции больше числа в 5-ой позиции.
Число в 1-ой позиции больше числа во 2-ой позиции.
Число в 3-ей позиции больше числа в 4-ой позиции.
Число во 2-ой позиции больше числа в 4-ой позиции.
Повторите медленную сортировку.
Циклическая сортировка (Cycle)
Если... То...
Число в 1-ой позиции не самое маленькое? Поменяйте местами число 1-ой позиции с позицией этого числа в отсортированным варианте. Повторите циклическую сортировку.
Число во 2-ой позиции не второе самое маленькое? Поменяйте местами число 2-ой позиции с позицией этого числа в отсортированным варианте. Повторите циклическую сортировку.
Число в 3-ей позиции не третье самое маленькое? Поменяйте местами число 3-ей позиции с позицией этого числа в отсортированным варианте. Повторите циклическую сортировку.
Поменяйте местами число в 4-ой позиции с позицией этого числа в отсортированным варианте.
Сортировка слиянием (Merge)
Поменяйте местами если...
Число в 1-ой позиции больше числа во 2-ой позиции.
Число в 4-ой позиции больше числа во 5-ой позиции.
Первая цифра в серийном номере нечётная? Иначе...
Поменяйте число в 1-ой позицией с самым маленьким
числом с позиций 1–3.
Поменяйте число в 5-ой позицией с самым большим
числом с позиций 3–5.
Поменяйте местами если число во 2-ой позиции больше числа в 3-ей позиции. Поменяйте местами если число в 3-ей позиции больше числа в 4-ой позиции.
Обратитесь к сортировке выбором
Сортировка вставками (Insertion)
Если... То...
Число в 1-ой позиции больше числа во 2-ой позиции. Поменяйте местами.
Число во 2-ой позиции больше числа в 3-ей позиции. Поменяйте местами и сдвинтесь на инструкцию вверх.
Число в 3-ей позиции больше числа в 4-ой позиции. Поменяйте местами и сдвинтесь на инструкцию вверх.
Число в 4-ой позиции больше числа в 5-ой позиции. Поменяйте местами и сдвинтесь на инструкцию вверх.
Пирамидальная сортировка (Heap)
Следите за тем, сколько раз была выполнена пирамидальная сортировка.
Если... Тогда поменяйте местами если...
Это первый или второй раз когда выполняется пирамидальная сортировка? Число во 2-ой позиции меньше числа в 4-ой позиции.
Это первый раз когда выполняется пирамидальная сортировка? Число во 2-ой позиции меньше числа в 5-ой позиции.
Это первый, второй, третий или четвёртый раз когда выполняется пирамидальная сортировка? Число в 1-ой позиции меньше числа во 2-ой позиции.
Это первый, второй или третий раз когда выполняется пирамидальная сортировка? Число в 1-ой позиции меньше числа в 3-ей позиции.
Это первый или второй раз когда выполняется пирамидальная сортировка? Число во 2-ой позиции меньше числа в 4-ой позиции.
Это первый раз когда выполняется пирамидальная сортировка? Число во 2-ой позиции меньше числа в 5-ой позиции.
Поменяйте местами число в 1-ой позиции с последней неотсортированной позицией. Повторите пирамидальную сортировку.
Поразрядная сортировка (Radix)
Если несколько чисел соответствуют правилу, то позициально самое левое число меньше.
Поменяйте местами...
Самое маленькое число в разряде единиц с 1-ой позицией.
2-ое самое маленькое число в разряде единиц со 2-ой позицией.
3-е самое маленькое число в разряде единиц с 2-ей позицией.
4-ое самое маленькое число в разряде единиц с 4-ой позицией.
Самое маленькое число в разряде десятков с 1-ой позицией.
2-ое самое маленькое число в разряде десятков со 2-ой позицией.
3-е самое маленькое число в разряде десятков с 3-ой позицией.
4-ое самое маленькое число в разряде десятков с 4-ой позицией.
Производите любые замены, пока не будет достигнуто упорядоченное состояние.
Сортировка расчёской (Comb)
Дистанция изначально равна 3. Пропускайте инструкции, обращающиеся к 6-ой или большей позициям.
Поменяйте местами если...
Число в 1-ой позиции больше числа в (1-ой + дистанция) позиции.
Число во 2-ой позиции больше числа во (2-ой + дистанция) позиции.
Число во 3-ей позиции больше числа в (3-ей + дистанция) позиции.
Число во 4-ой позиции больше числа в (4-ой + дистанция) позиции.
Уменьшите дистанцию на 1. Повторите сортировку расчёской.
Быстрая сортировка (Quick)
В начале, опорный = 1, текущий = 5.
Если... То...
Позиция опорного и позиция текущего не упорядочены относительно друг друга? Поменяйте местами позицию опорного и текущего, включая их значения.
Оба имеют одинаковое значение? Иначе, текущий элемент на единицу ближе к опорному. Опорный = самая ранняя неотсортированная позиция.
Текущий = самая последняя неотсортированная позиция.
Повторите быструю сортировку.
Сортировка Шелла (Shell)
Поменяйте местами если...
Число в 1-ой позиции больше числа в 3-ей позиции.
Число во 2-ой позиции больше числа в 4-ой позиции.
Число в 3-ей позиции больше числа в 5-ой позиции.
Число в 1-ой позиции больше числа в 3-ей позиции.
Обтатитесь к сортировке пузырьком.
Сортировка выбором (Selection)
Поменяйте самое маленькое число с числом в 1-ой позиции.
Поменяйте 2-ое самое маленькое число с числом во 2-ой позиции.
Поменяйте 3-е самое маленькое число с числом в 3-ей позиции.
Поменяйте местами число в 4-ой позиции с числом в 5-ой позиции
Сортировка "Пять" (Five)
Поменяйте местами 3-е самое большое число с числом в 3-ей позиции.
Если... То...
Число в 1-ой позиции больше
3-го самого большого числа?
Поменяйте местами число в 1-ой позиции с самым ранним после
3-ей позиции, меньшим их обоих.
Число во 2-ой позиции больше
3-го самого большого числа?
Поменяйте местами число во 2-ой позиции с самым ранним после
3-ей позиции, меньшим их обоих.
Поменяйте местами если...
Число в 1-ой позиции больше числа во 2-ой позиции.
Число в 4-ой позиции больше числа во 5-ой позиции.
Сортировка перемешиванием (Cocktail)
Поменяйте местами если...
Выполните инструкции ниже в обычном порядке.
Число в 1-ой позиции больше числа во 2-ой позиции.
Число во 2-ой позиции больше числа в 3-ей позиции.
Число в 3-ей позиции больше числа в 4-ой позиции.
Число в 4-ой позиции больше числа в 5-ой позиции.
Выполните вышесказанные инструкции в обратном порядке.
Сортировка чёт-нечёт (OddEven)
Поменяйте местами если...
Число в 1-ой позиции больше числа во 2-ой позиции.
Число в 3-ей позиции больше числа в 4-ой позиции.
Число во 2-ой позиции больше числа в 3-ей позиции.
Число в 4-ой позиции больше числа в 5-ой позиции.
Повторите сортировку чёт-нечёт.
Обезьянья сортировка (Bogo)
Можно производить любые замены, но можно произвести лишь 250 замен перед тем, как будет спровоцирована ошибка. Для сапёра не видны числа, но модуль всё еще может быть обезврежен.
Можно вернуться к предыдущему этапу, продолжительно нажимая на любую кнопку.
Сортировка по частям (Stooge)
Выполняйте эту инструкцию во второй раз? N = 2. Иначе, N = 1.
Обратитесь к подмассиву с N.
Обратитесь к подмассиву с N+1.
Обратитесь к подмассиву с N.
Повторите сортировку по частям.
Подмассив
Поменяйте местами если...
Число в позиции N больше числа в позиции N+1.
Число в позиции N+1 больше числа в позиции N+2.
Число в позиции N больше числа в позиции N+1.
Обратитесь к следующей инструкции в сортировке по частям.