У меня большой текстовый файл, который мне нужно отсортировать на Java. Формат:
слово [табуляция] частота [новая строка]
Алгоритм сортировки:
- Чтение некоторых файлов с фильтрацией по буквам букв алфавита.
- Если у вас есть X буквенных слов, вызовите Collections.sort и запишите результат в файл.
- Повторяйте, пока не закончите чтение файла.
- Начните читать два отсортированных файла, сравнивая строку за строкой для слова с более высокой частотой, и одновременно записывая в новый файл, чтобы не загружать много в вашу память
- Повторяйте, пока все файлы не будут объединены в один большой файл
Прямо сейчас я разделил большой файл на более мелкие (отсортированные по убыванию частоты) по 10000 строк в каждой. Я знаю, что мне нужно как-то объединить эти файлы, но я не знаю, как это сделать.
Я создал LinkedList для отслеживания всех созданных файлов. Алгоритм говорит, что нужно сравнивать каждую строку в двух файлах, за исключением того, что я пробовал случай, когда, скажем, file1 = 8,6,5,3,1 и file2 = 9,8,8,8,8. Тогда, если я сравниваю их построчно, я получаю file3 = 9,8,8,6,8,5,8,3,8,1, который неправильно отсортирован (они должны быть в порядке убывания).
Я думаю, что неправильно понимаю некоторую часть алгоритма. Если бы кто-то мог указать, что я должен делать вместо этого, я был бы очень признателен. Спасибо.
изменить: Да, это назначение. К сожалению, нам нельзя увеличивать память: (