Pull to refresh
13
Арслан Урташев@arslan-urtashev

I'm CTO!

2
Subscribers
Send message
Потому что Cap'n Proto's — это формат хранения данных, а не передачи.

P.S. Лучше брать flatbuffers для этой цели.
В зарубежной литературе натуральные числа обычно начинаются с 0
Полчаса — это если в 12 потоков) И код по хардкору на C++. Руками ничего не обрабатываю, потому что лень( Из-за этого всякие несуразности все-равно остаются.

2. Это как-то неправильно. Задача обратного геокодинга сложная сама по себе, а если еще и память нельзя кушать, то совсем печально получается.
Забавно. Я сейчас тихо-мирно тоже потихоньку пилю свой обратный геокодер (как библиотеку), который умеет возвращать то же, что и ваш (в смысле ID). Он переваривает все данные OSM примерно за полчаса и генерит бинарную базу примерно на 5Гб (могу еще сжать до 4Гб, но придется всякие битовые оптимизации мутить). После чего используя эту бинарную базу умеет порядка 100 000 локальных вызовов в библиотеку с временами ответов почти всех запросов в районе 1 микросекунды, если подтянуть все данные в память перед запросами. Честного тестирования производительности не делал, поэтому цифры примерные, но правильного порядка. Планирую в течении ближайших пары месяцев допилить и написать статью о библиотеке, алгоритмах и структурах данных в ней.
Ничего подобного. www.cplusplus.com/reference/algorithm/nth_element

P.S. Сори (коменты не читай — сразу отвечай)
Справедливости ради — да (я просто мимо проходил)
В посте описано. Нужно не проводить релаксацию, если из кучи достали неактуальный путь.
Вы либо троллите, либо действительно не знаете. Буду исходить из второго и добавлю реализацию кучи в пост.
Будем считать, что на верхушке кучи лежит минимум, тогда O(log(n)) на добавление, O(log(n)) на удаление минимума, O(1) на поиск минимума
Да, согласен. Постарался поправить формулировку
Ну и да, легко это писать, когда за вас куча реализована фреймворком, а вот когда вы эту кучу делаете ручками, все не так радужно.

Не согласен. Кучу писать совсем не сложно.
Откуда вы взяли лишнее log(n) при m? Стандартная сложность этого алгоритма при использовании кучи — O(m + n* log(n)).

Если использовать фибоначчиеву кучу, то да. При использовании обычной кучи, асимптотика именно такая, как я показал.

А вот и нет, интуитивно понятно, но неверно. Точнее, верно только в том случае, если вы соблюдаете ограничение применимости этого алгоритма, про которое в посте ни слова.

Согласен, это верно только при не отрицательных весах ребер, сейчас допишу об этом в посте.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity