концепції / data-structures
Структури даних
Позиція каналу: на практиці важливо знати властивості кожної структури та її складність за часом і памʼяттю, а не завчати реалізації — хоча Віктор і сам реалізовував топологічне сортування та повнотекстовий пошук, коли цього вимагала задача (друге Q&A). Сімейство дерев дістає практичний розбір: бінарні дерева пошуку («менше — ліворуч, більше — праворуч»), їхній вироджений випадок (вставте 1..5 по порядку — і дерево схлопується у звʼязний список з пошуком за O(N)), самобалансувальні повороти в стилі AVL, що тримають різницю висот піддерев у межах 1, і стрибок до дискодружніх B-дерев — з ремаркою, що файлова система ext4 використовує H-tree, спрощений аналог B-дерева (дерева, алгоритми пошуку і бази даних).
Поза деревами: хеш-мапа як ліки від злиття вкладеними циклами (один раз будуєш мапу з ключем user id, далі — лукапи за O(1)), у контрасті з відсортованими масивами — по них працює бінарний пошук, але сортування дороге, тож воно виправдане, лише якщо сортуєш один раз, а шукаєш сотню разів (навіщо потрібні алгоритми). І ймовірнісна гілка: фільтри Блума, реалізовані як бітовий масив, запакований в Uint32Array з адресацією бітів через ділення/остачу на 32. Його аргумент, що все це не теорія: Firefox з 2025 року возить каскад фільтрів Блума в продакшені, «Сільпо» ганяє фільтр у своїй CRM, а npm-бібліотеки для каскадного варіанта взагалі не існує — інколи структуру доводиться будувати самому (фільтр Блума і Firefox).
Розібрано у відео
- Дерева. Пошук. Алгоритми. Бази даних
сімейство дерев на практиці: BST, вироджений випадок звʼязного списку, AVL-повороти, H-tree в ext4
- Чому алгоритми важливі — розберемо на прикладі
хеш-мапи проти відсортованих масивів: яка структура під який патерн доступу
- Геніальна структура даних й як її покращив Firefox
ймовірнісні структури; деталі реалізації на бітовому масиві; «це не теорія»
- Відповідаю на питання №2
знати властивості і складність, а не завчений код; його власні реалізації руками
Повʼязане
Алгоритмічна складність — мірило, яким вимірюють структури B-tree / B+ tree — дерево, яке насправді використовують бази даних Фільтр Блума — ймовірнісна зірка кластера Індекси баз даних — структури даних в індустріальному масштабі Глибоке вивчення фундаментальних речей — чому довговічне знання — це властивості, а не реалізації