LINUX.ORG.RU

Внешняя сортировка за линейное время


0

0

Интересует, возможно ли сделать это. Собственно интересует именно заключительная фаза алгоритма - слияние отсортированых кусоков файла. Почему то мне кажется что классические алгоритмы сливают не за линейное время от количества записей. Ну две под последовательности сливают конечно за линейное, но там ведь последовательностей большое количество, и приходится уже обработанные куски, сливать с другими обработанными кусками что бы получить результат - в этом, мне кажется, кроется сверх линейное время.

Вопрос : возможно ли слить отсортированные куски большого файла за линейное время.


> Ну две под последовательности сливают конечно за линейное, но там ведь последовательностей большое количество

ну да, там логарифм количества последовательностей домножается. А как без этого — если последовательностей столько же сколько элементов, то есть в каждой последовательности один элемент, то задача превращается в обычную сортировку, ты ее тоже хочешь линейно сделать?

dilmah ★★★★★
()
Ответ на: комментарий от dilmah

Если рассуждать логически - то да, буфер фиксированный, а следовательно количество кусков будет линейно зависить от количества элементов.

Пришло озарение! Вобще-то в условии указано ограничение - сортируются числа unsinged short. Получается что можно использовать сортировку подсчетом на всем файле, а не только на кусках, ведь память всеравно будет фиксированаая, и не такая уж и большая.

Спасибо!

recon88
() автор топика

nlog(n)

если используется сравнение элементов и не используется дополнительная память, если потратить больше памяти, то можно сделать быстрее

dimon555 ★★★★★
()

Хм, подобное было у Яндекса при отсеве на собеседование:

Задачка

Для сортировки файлов, которые не помещаются в оперативную память применяют внешнюю сортировку. При этом наиболее долгими являются операции обращения к жесткому диску. Разработайте алгоритм внешней сортировки, у которого количество операций чтения O(N log N), а количество операций записи O(N).

skwak
()
Ответ на: комментарий от skwak

и чем же оно подобное? оба про сортировку?:)

dilmah ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.