В качестве учебного упражнения я только что попытался реализовать свой собственный алгоритм сортировки слиянием. Я сделал это в std :: list, в котором, очевидно, уже были встроены функции sort () и merge (). Однако я планирую перенести это в связанный список моего собственного создания, поэтому реализация не особенно важно.
Проблема заключается в том, что std :: list не имеет средств для доступа к случайным узлам, только для доступа вперед / назад и прохода через него. Первоначально я планировал каким-то образом выполнить простой двоичный поиск по этому списку и найти ответ в несколько шагов.
Тот факт, что в std :: list уже есть встроенные функции для выполнения такого рода упорядочивания, заставляет меня поверить, что существует одинаково простой способ доступа к списку так, как я хочу.
В любом случае, заранее спасибо за помощь!