Size: a a a

cxx.Дискуссионная

2020 August 13

CC

Cool Cooler in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
И в поиске. Но быстрее в среднем не значит, что быстрее всегда
Хм... А как может O(n) быть быстрее O(log n)?
источник

CC

Cool Cooler in cxx.Дискуссионная
Поиск же у него O(n)?
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
Cool Cooler
Быстре во вставке и удалении?
А в поиске?
Погоди, ты сейчас list и unordered_map в одну кучу свалил
источник

CC

Cool Cooler in cxx.Дискуссионная
Ну раз unordered
источник

VK

Vitaliy ◀️TriΔng3l▶️... in cxx.Дискуссионная
Cool Cooler
Поиск же у него O(n)?
Смотря что понимать под поиском
источник

CC

Cool Cooler in cxx.Дискуссионная
Vitaliy ◀️TriΔng3l▶️ Kuzmin
Смотря что понимать под поиском
У найти элемент с данным ключом
источник

VK

Vitaliy ◀️TriΔng3l▶️... in cxx.Дискуссионная
По ключу (first) — O(1), по значению (second) — O(n)
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
Cool Cooler
Хм... А как может O(n) быть быстрее O(log n)?
Потому что там не O большое, а среднее
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
Худший случай у хешмапы хуже красно-чёрных деревьев
источник

CC

Cool Cooler in cxx.Дискуссионная
Vitaliy ◀️TriΔng3l▶️ Kuzmin
По ключу (first) — O(1), по значению (second) — O(n)
А как это по ключу O(1)?
источник

VK

Vitaliy ◀️TriΔng3l▶️... in cxx.Дискуссионная
Cool Cooler
А как это по ключу O(1)?
Берётся от ключа хеш, по кусочку этого хеша выбирается ячейка
источник

CC

Cool Cooler in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
Худший случай у хешмапы хуже красно-чёрных деревьев
Красно-чёрных деревьев?
источник

VK

Vitaliy ◀️TriΔng3l▶️... in cxx.Дискуссионная
У разных ключей хорошая хеш-функция будет достаточно разные хеши выдавать, чтобы не свалить всё в одну кучу
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
Cool Cooler
Красно-чёрных деревьев?
Да, красно-чёрных деревьев
источник

CC

Cool Cooler in cxx.Дискуссионная
Vitaliy ◀️TriΔng3l▶️ Kuzmin
Берётся от ключа хеш, по кусочку этого хеша выбирается ячейка
Аааа
Так это ж сколько памяти зря тратится для хранения?
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
Cool Cooler
Аааа
Так это ж сколько памяти зря тратится для хранения?
Что значит зря?)
источник

VK

Vitaliy ◀️TriΔng3l▶️... in cxx.Дискуссионная
Cool Cooler
Аааа
Так это ж сколько памяти зря тратится для хранения?
Примерно того же порядка, что и количество элементов
источник

AB

Artöm Bakri Al-Sarmi... in cxx.Дискуссионная
Cool Cooler
Хм... А как может O(n) быть быстрее O(log n)?
Может быть быстрее для конкретного N
источник

CC

Cool Cooler in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
Что значит зря?)
Ну значит, что память выделена, а в ней пусто (или мусор)
источник

VK

Vitaliy ◀️TriΔng3l▶️... in cxx.Дискуссионная
Ну и потом в ячейке (bucket) если оказалось несколько элементов с одинаковым хешем, то уже строго через == линейно выбирается из них искомый элемент
источник