Неизменяемость: как работать с данными, ничего не меняя
Почему запрет на изменение данных убирает целый класс багов, как обновлять неизменяемые структуры без квадратичного копирования и сколько это реально стоит в проде.
22 материалов в этой теме.
Почему запрет на изменение данных убирает целый класс багов, как обновлять неизменяемые структуры без квадратичного копирования и сколько это реально стоит в проде.
От адресной арифметики и кэш-линий до амортизированного append, Go-слайсов, UTF-8 и графемных кластеров — как устроена самая используемая структура данных и где на ней …
Как из обычного массива получается структура, которая всегда знает свой минимум: инвариант кучи, sift-up и sift-down, построение за O(n), heapsort, d-арные и Фибоначчиевы …
Память — это плоский пронумерованный массив байтов; структуры данных — это способы разложить в нём данные так, чтобы нужные операции были быстрыми. Обзор главных …
От определения дерева до продакшн-BST: обходы, инвариант порядка, поиск/вставка/удаление, порядковые запросы, вырождение и почему в реальных библиотеках лежит не BST.
Как отвечать на запросы к произвольным отрезкам массива за O(log n), когда массив всё время меняется: биты дерева Фенвика, каноническое разбиение дерева отрезков, …
Как хранить граф в памяти: список рёбер, матрица и списки смежности, CSR; чем они различаются по времени, памяти и локальности, как извлекать базовые свойства графа и как …
Git — это не набор команд, а маленькая контентно-адресуемая база данных из четырёх типов объектов и направленный ациклический граф поверх неё; разбираем её по байтам, …
Как обменять точность на память: устройство и математика фильтра Блума, HyperLogLog и Count-Min Sketch, их гарантии ошибок, рабочий код, границы применимости и место в …
Строгий разбор O-нотации, трёх методов амортизированного анализа и модели памяти — почему O(1) бывает в сто раз медленнее O(log n) и как считать стоимость структуры …
По этому запросу ничего не найдено.