Все знают, что в /b сидят реальные порграммисты, а не какие-то петухи из /pr. Так вот, как на счет реальной задачки, а не очередного олимпиадного кала:Даны несколько миллиардов строк раскиданных по 2-3 млн файлов, вида 107730353:1233871Итогом программы должен быть файл с отсортированными данными.Предлагайте ваши варианты по языку реализации и самому алгоритму сортировки.Сам я выбрал пикрил.
на бейсике, сортируем по кол-ву символов
>>144458354Так себе вариант. Он может в многопоточность и неблокирующие операции с файлами?
Бамп
>>144458251 (OP)Golang + PostgreSQL практичнее всего будет. https://www.acloudtree.com/how-to-shove-data-into-postgres-using-goroutinesgophers-and-golang/ пример.
>>144458251 (OP)Сортировку в универе делал рекурсивным quicksort-ом, но надо будет все данные в памяти держать.Если подумать, можно его оптимизировать для твоей ситуации, но думал на подобную тему я лет десять назад в последний раз.
>>144458617Я ссылку не читал, но ты предлагаешь сорт оф всё загрузить в бд и сделать order by?
>>144458617>>144459014Текущий алгоритм на файлах без бд уже работает быстрее этого, но нужно сделать еще быстрее.
>>144458617Григорий?
>>144459064Скинуть миллиарды строк в файл? Нахуя так делать, в том смысле зачем в файл, бд для этого же существуют. Это точно реальная задача?
>>144459196Как раз сортировка в БД и не справляется с таким количеством строк, а на файлах все ок. У меня просто сервер всего один и на нем сортировка в базе просто не проходит.
>>144459250Какая бд не справляется? У тебя там SQLite чтоль?
>>144459326PostgreSQL. Я уже сказал, что именно сортировка в базе упирается во время и ресурсы, которых у меня нет. А сортировка в файле - дешево и сердито.
Очевидная сортировка слиянием очевидна, на последних этапах, по крайней мере. До неё ОП додумался, но применять её на первых этапах расточительно, я бы не стал - лучше отсортировать в памяти любимым средством.
>>144459736> лучше отсортировать в памяти любимым средствомА где она по твоему происходит? Открываю несколько файлов на чтение и сливаю в один. Или сортировка слиянием подразумевает только два одновременно открытых файла?
>>144458251 (OP)довен, сначала посортируй по количеству символов, сначала до двоеточия потом после двоеточия. А потом уже проходись и сортируй их также
>>144460041Нужен самый быстрый алгоритм
>>144460135это и есть самый быстрый алгоритм, иди в многопоточность вообще будет быстрым
https://en.wikipedia.org/wiki/Merge_sort#Parallel_merge_sort</thread>
http://pastebin.com/UCpRuBbz
>>144460529Нахуя ты там обосрался?