Сортировка 1 триллиона целых чисел

Учитывая набор из 1 триллиона целых чисел на жестком диске, найдите 1 миллион наименьших из них. Вы можете одновременно уместить в памяти не более 1 миллиона целых чисел.

Один из подходов состоит в том, чтобы взять первый миллион из 1 триллиона, отсортировать 1 миллион целых чисел и сохранить его обратно на жесткий диск. Таким образом продолжите сортировку для каждой группы из 1 миллиона целых чисел и сохраните ее на жестком диске. Теперь группы из 1 миллиона целых чисел сортируются до 1 триллиона. Теперь сравните первый элемент всех отсортированных групп, минимум из них - минимум 1 триллион. Сохраните его как первый элемент в памяти. Затем возьмите второй элемент из группы, из которой пришел наименьший элемент, и затем сравните его с первым элементом всех остальных групп. Таким образом, повторяйте процедуру, пока первый миллион не будет отсортирован и сохранен в памяти.

Есть ли более оптимальный подход, который мне не хватает?

10
задан dreamer 16 June 2011 в 05:53
поделиться