Меня спросили об этом в интервью.
Список выглядит так.
a1->bn->a2->bn-1 ... ->a n->b1->NULL
Такой, что a1 ‹ a2 ‹ ... ‹ an
а также
b1 ‹ b2 ‹ ... ‹ bn
Интервьюер наложил на меня следующие ограничения:
- Вы должны отсортировать список на месте, то есть вам не разрешено удалять альтернативные элементы группы элементов в отдельный список.
- Вы должны как-то использовать шаблон, который есть в списке, чем наивный алгоритм сортировки.
Я не мог придумать решение во время интервью, да и сейчас тоже. :-(
Редактировать: Напишите код на C для сортировки этого односвязного списка.
Edit2: Мне также сказали, что я могу позаимствовать некоторые идеи из пузырьковой сортировки и воспользоваться шаблоном. Но это не должна быть «наивная» короткометражка.
Я ненавижу, когда интервьюер ставит искусственные ограничения, но работа есть работа :-)
a
иb
? - person Marcin   schedule 09.05.2012a
иb
. - person Marcin   schedule 09.05.2012