[Ответить в тред] Ответить в тред

02/12/16 - Конкурс визуальных новелл доски /ruvn/
15/11/16 - **НОВЫЙ ФУНКЦИОНАЛ** - Стикеры
09/10/16 - Открыта доска /int/ - International, давайте расскажем о ней!


Новые доски: /2d/ - Аниме/Беседка • /wwe/ - WorldWide Wrestling Universe • /ch/ - Чатики и конфочки • /int/ - International • /ruvn/ - Российские визуальные новеллы • /math/ - Математика • Создай свою

[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 20 | 1 | 8
Назад Вниз Каталог Обновить

Аноним 14/01/17 Суб 15:10:39  144458251  
mergesort2.png (35Кб, 464x360)
Все знают, что в /b сидят реальные порграммисты, а не какие-то петухи из /pr. Так вот, как на счет реальной задачки, а не очередного олимпиадного кала:
Даны несколько миллиардов строк раскиданных по 2-3 млн файлов, вида
107730353:1233871

Итогом программы должен быть файл с отсортированными данными.

Предлагайте ваши варианты по языку реализации и самому алгоритму сортировки.

Сам я выбрал пикрил.
Аноним 14/01/17 Суб 15:12:35  144458354
на бейсике, сортируем по кол-ву символов
Аноним 14/01/17 Суб 15:13:36  144458418
>>144458354
Так себе вариант. Он может в многопоточность и неблокирующие операции с файлами?
Аноним 14/01/17 Суб 15:15:30  144458522
Бамп
Аноним 14/01/17 Суб 15:17:41  144458617
>>144458251 (OP)
Golang + PostgreSQL практичнее всего будет. https://www.acloudtree.com/how-to-shove-data-into-postgres-using-goroutinesgophers-and-golang/ пример.
Аноним 14/01/17 Суб 15:21:29  144458852
>>144458251 (OP)
Сортировку в универе делал рекурсивным quicksort-ом, но надо будет все данные в памяти держать.
Если подумать, можно его оптимизировать для твоей ситуации, но думал на подобную тему я лет десять назад в последний раз.
Аноним 14/01/17 Суб 15:24:10  144459014
>>144458617
Я ссылку не читал, но ты предлагаешь сорт оф всё загрузить в бд и сделать order by?
Аноним 14/01/17 Суб 15:25:03  144459064
>>144458617
>>144459014
Текущий алгоритм на файлах без бд уже работает быстрее этого, но нужно сделать еще быстрее.
Аноним 14/01/17 Суб 15:26:30  144459143
>>144458617
Григорий?
Аноним 14/01/17 Суб 15:27:39  144459196
>>144459064
Скинуть миллиарды строк в файл? Нахуя так делать, в том смысле зачем в файл, бд для этого же существуют. Это точно реальная задача?
Аноним 14/01/17 Суб 15:28:50  144459250
>>144459196
Как раз сортировка в БД и не справляется с таким количеством строк, а на файлах все ок. У меня просто сервер всего один и на нем сортировка в базе просто не проходит.
Аноним 14/01/17 Суб 15:30:08  144459326
>>144459250
Какая бд не справляется? У тебя там SQLite чтоль?
Аноним 14/01/17 Суб 15:31:30  144459396
>>144459326
PostgreSQL. Я уже сказал, что именно сортировка в базе упирается во время и ресурсы, которых у меня нет. А сортировка в файле - дешево и сердито.
Аноним 14/01/17 Суб 15:37:23  144459736
Очевидная сортировка слиянием очевидна, на последних этапах, по крайней мере. До неё ОП додумался, но применять её на первых этапах расточительно, я бы не стал - лучше отсортировать в памяти любимым средством.
Аноним 14/01/17 Суб 15:40:15  144459942
>>144459736
> лучше отсортировать в памяти любимым средством
А где она по твоему происходит? Открываю несколько файлов на чтение и сливаю в один. Или сортировка слиянием подразумевает только два одновременно открытых файла?
Аноним 14/01/17 Суб 15:41:43  144460041
>>144458251 (OP)
довен, сначала посортируй по количеству символов, сначала до двоеточия потом после двоеточия. А потом уже проходись и сортируй их также
Аноним 14/01/17 Суб 15:43:10  144460135
>>144460041
Нужен самый быстрый алгоритм
Аноним 14/01/17 Суб 15:49:02  144460529
>>144460135
это и есть самый быстрый алгоритм, иди в многопоточность вообще будет быстрым
Аноним 14/01/17 Суб 15:51:57  144460719
https://en.wikipedia.org/wiki/Merge_sort#Parallel_merge_sort

</thread>
Аноним 14/01/17 Суб 16:01:19  144461258
http://pastebin.com/UCpRuBbz
Аноним 14/01/17 Суб 16:05:04  144461484
>>144460529
Нахуя ты там обосрался?

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 20 | 1 | 8
Назад Вверх Каталог Обновить

Топ тредов
Избранное