crypt of decay - замена хэш-табличкам, дёшево и сердито [entries|archive|friends|userinfo]
ketmar

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

замена хэш-табличкам, дёшево и сердито [Jan. 28th, 2022|05:34 pm]
Previous Entry Add to Memories Tell A Friend Next Entry
структура данных, которая обеспечивает производительность O(2*n) (где `n` — длина ключа; если что, у хэш-таблицы тоже как минимум такое, потому что сам хэш считать-то надо, и делать в лучшем случае ещё одно сравнение; на деле сравнений бывает и больше одного, так что O даже хуже) вне зависимости от количества элементов, гарантировано сортированые ключи, быстрое доставание минимального и максимального ключей, перечисление всех ключей с данным префиксом, и чтобы писать просто? их есть у меня! называется crit-bit tree (сишечка).

также не требует рехэшинга/ребаланса, и реаллоков.
Linkmeow!

Comments:
[User Picture]
From:[info]steinkrauz
Date:January 29th, 2022 - 12:07 pm
(Link)
А вот этот вариант смотрел?
https://github.com/fanf2/qp

[User Picture]
From:[info]ketmar
Date:January 29th, 2022 - 12:13 pm
(Link)
The qp trie implementation is about 40% bigger.
вот примерно на этом месте сразу и неинтересно. криты простые как поленом по колену, и при этом всё ещё дохрена быстрые. специфика в том, чтобы — как и с aatree — код можно было ваще по памяти воспроизвести, не включая мозг, и результат был сравним по эффективности с более сложными решениями. в критах четыре функции по ~15 строчек, 2/3 — копипаста простейшего поиска «идём вниз». быстро, дёшево, сердито.