Interested Article - Блинная сортировка

Одна операция блинной сортировки (вариант с подгоревшими блинами)

Блинная сортировка (от англ. pancake sorting ) — алгоритм сортировки . Единственная операция, допустимая в алгоритме — переворот элементов последовательности до какого-либо индекса. В отличие от традиционных алгоритмов, в которых минимизируют количество сравнений, в блинной сортировке требуется сделать как можно меньше переворотов. Процесс можно визуально представить как стопку блинов , которую тасуют путём взятия нескольких блинов сверху и их переворачивания.

Алгоритм

Простейший алгоритм (вариант сортировки выбором ) даёт не более переворотов, однако требует поиска наибольшего элемента . В 1979 году Билл Гейтс и Христос Пападимитриу представили свой алгоритм и доказали достаточность переворотов и необходимость . В 1997 году Хейдари и Судборог показали нижнюю границу в . Они представили точные значения вплоть до , для которого требуется 15 переворотов . Значительно (до ) превзойти результат Гейтса и Пападимитриу получилось только в 2008 году у группы исследователей из Техасского университета в Далласе под руководством Судборога .

Задача о подгоревших блинах

Усложнённый вариант представляет собой блинную сортировку последовательности, элементы которой содержат дополнительный бинарный параметр. Эту задачу предложили Билл Гейтс и Христос Пападимитриу в 1979 году . Она стала известна как «задача о подгоревших блинах» ( англ. burnt pancake problem ):

Каждый блин в стопке подгорел с одной стороны. Требуется отсортировать блины по возрастанию (убыванию) диаметра так, чтобы они все лежали на тарелке подгоревшей стороной вниз.

В 2007 году группа студентов создала биокомпьютер на основе генетически модифицированной кишечной палочки ( E. coli ), который решал задачу о подгорелых блинах. Роль блинов играли фрагменты дезоксирибонуклеиновой кислоты (3′- и 5′-концы которых обозначали разные стороны блина). Бактерия, выстроив фрагменты в нужном порядке, приобретала устойчивость к антибиотику и не погибала. Время, затраченное на поиск правильной комбинации, показывало минимально необходимое число переворотов фрагмента .

Реализация

Примечания

  1. Douglas B. West. (англ.) . Дата обращения: 16 августа 2009. 5 апреля 2012 года.
  2. William H. Gates; Christos H. Papadimitriou. (англ.) // Discrete Mathematics. — 1979. — Iss. 27 . — P. 47—57 . 10 июня 2007 года.
  3. Mohammad H. Heydari; I. Hal Sudborough. On the diameter of the pancake network (англ.) // Journal of Algorithms. — Дулут : Academic Press, Inc, 1997. — Vol. 25 , iss. 1 . — P. 67—94 .
  4. (англ.) (17 сентября 2008). Дата обращения: 16 августа 2009. 5 апреля 2012 года.
  5. B. Chitturi, W. Fahle, Z. Meng, L. Morales, C. O. Shields, I. H. Sudborough, W. Voit. (англ.) // Theoretical Computer Science. — Эссекс : Elsevier Science Publishers Ltd., 2009. — Vol. 410 , iss. 36 . — P. 3372—3390 .
  6. Karmella A. Haynes, Marian L. Broderick, Adam D. Brown et al. (англ.) // Journal of Biological Engineering. — 2008. — Vol. 2 , iss. 8 . 30 июля 2009 года.
  7. (англ.) . Дата обращения: 16 августа 2009. 5 апреля 2012 года.

См. также

Ссылки

  • Weisstein, Eric W. (англ.) . MathWorld. Дата обращения: 16 августа 2009.
  • Alexander Bogomolny. (англ.) . Дата обращения: 16 августа 2009. 5 апреля 2012 года.
Источник —

Same as Блинная сортировка