Подтвердить что ты не робот

Сортировка связанного списка - почему бы и нет?

Недавно я читал статью в которой упоминалось:

Боже, не пытайтесь сортировать связанный список во время интервью.

Есть ли причина, по которой автор написал это? Причина не сразу понятна. Я знаю, что сортировка слияния работает в связанных списках в O (nlgn) time - что с этим не так? Мне что-то не хватает?

EDIT: Любая причина, почему возникает вопрос, проголосовали за закрытие? Я честно интересуюсь и просто ищу ответы или интересные моменты.

4b9b3361

Ответ 1

У меня нет способа узнать, почему автор блога написал, что он сделал. Если бы я должен был догадаться, я бы сказал, что на самом деле означало что-то вроде:

Не предполагайте, что эффективная сортировка связанного списка будет такой же простой, как сортировка структуры данных, которая обеспечивает произвольный доступ к ее элементам. Если вы в конечном итоге полагаетесь на возможность сортировки связанного списка, будьте готовы объяснить, какой может быть подходящий алгоритм, и обсудить его сложность.

Ответ 2

Я думаю, вы обнаружите, что, хотя можно сортировать связанный список, используя сортировку слияния, код, который делает это эффективно, несколько задействован. Это не то, что вы хотели бы развивать, стоя на белой доске в середине интервью.

Ответ 3

Операция получения/установки элементов по конкретным индексам используется большинством алгоритмов сортировки и должна быть быстрой, чтобы алгоритмы сортировки были быстрыми. Обычно они O(1) для обычного списка, но для связанного списка это O(n), и это делает сортировку ужасно неэффективной. Возможно, это отражает причины вашей цитаты.