Size: a a a

2021 April 18

AT

Anatoly Tomilov in pro.algorithms
а, я опять неточен
источник

AT

Anatoly Tomilov in pro.algorithms
посчитать слова — это значит вывести пары — "слово частота" построчно, например
источник

CD

Constantine Drozdov in pro.algorithms
думаешь хешмапа не вытянет 1 ГБ в секунду?
источник

AT

Anatoly Tomilov in pro.algorithms
std::unordered_map вытягивает меньше 100МБ в секунду для слов из человеческих текстов
источник

EZ

Evgenii Zheltonozhsk... in pro.algorithms
а нормальная мапа?)
источник

AT

Anatoly Tomilov in pro.algorithms
так же
источник

CD

Constantine Drozdov in pro.algorithms
оно на порядок медленнее любой адекватной мапы
источник

CD

Constantine Drozdov in pro.algorithms
потому что насилует аллокатор
источник

AT

Anatoly Tomilov in pro.algorithms
для строк std::map может быть эффективнее, т.к. не нужно считать хеш от длинной длинной строки в случае, если префиксы более-менее уникальные
источник

CD

Constantine Drozdov in pro.algorithms
возьми нормальную хешмапу и хеш вида ксор первых 8 байт на последние 8
источник

K

Kotomord_λapki in pro.algorithms
Тогда сортировка и линейный проход будут эффективнее, не?
источник

CD

Constantine Drozdov in pro.algorithms
корзинками по хешу вида ксор первых на последние 8 байт :)
источник

AT

Anatoly Tomilov in pro.algorithms
безумно много коллизий будет
источник

CD

Constantine Drozdov in pro.algorithms
вы пробовали?
источник

AT

Anatoly Tomilov in pro.algorithms
Тогда челлендж: я даю текст 300 с небольшим МБ (дамп всяких книжек на английском) и условие, что словами считаются только непрерывные последовательности из a..z и A..Z(т.е. в предложении state's laws 3 слова). Необходимо посчитать слова и вывести их в lowercase по убыванию частоты и для равной частоты — в лексикографическом порядке. Кто быстрее 1 секунды сделает (на чтение с диска и ввод у меня 270 мс уходит, пусть это будет неизбежный оверхед, вряд ли он вообще будет различаться в решениях)? В тексте слова не длиннее 128 байт. 1 поток.
Текст https://disk.yandex.ru/d/mOY5CrveIAOtnQ
https://disk.yandex.ru/d/p3W1pGZwj95PAQ это референсный вывод для LF окончаний строк
md5sum
850944413ba9fd1dbf2b9694abaa930d *lf.txt
d1362c6c9de664c34c3066ec1d01078f *crlf.txt
источник

AT

Anatoly Tomilov in pro.algorithms
угу
источник

K

Kotomord_λapki in pro.algorithms
Возможно, и так
источник

CD

Constantine Drozdov in pro.algorithms
ну сдвиньте на 4 там если английский текст в ASCII
источник

CD

Constantine Drozdov in pro.algorithms
суффикс
источник

K

Kotomord_λapki in pro.algorithms
Язык?
источник