Можно долго спорить о том, нужно ли сейчас ботать алгоритмы и структуры данных. Мне кажется, что в любом случае лишним не будет.
В статье по ссылке сравниваются четыре книжки по ряду параметров: стиль изложения, как показан код, много ли математики, количество охватываемых тем и насколько глубоко эти темы рассматриваются. В конце автор приходит к двум книжкам: Introduction to Algorithms и The Algorithm Design Manual. И вот по этому случаю (да простят мне эту маленькую шалость правообладатели) лови PDF-ки к ним.
#book #algorithm #datastructure
https://porgionesanke.wordpress.com/2016/07/11/a-comparison-of-four-algorithms-textbooks/
В статье по ссылке сравниваются четыре книжки по ряду параметров: стиль изложения, как показан код, много ли математики, количество охватываемых тем и насколько глубоко эти темы рассматриваются. В конце автор приходит к двум книжкам: Introduction to Algorithms и The Algorithm Design Manual. И вот по этому случаю (да простят мне эту маленькую шалость правообладатели) лови PDF-ки к ним.
#book #algorithm #datastructure
https://porgionesanke.wordpress.com/2016/07/11/a-comparison-of-four-algorithms-textbooks/
The Poetry of Computer Science
A Comparison of Four Algorithms Textbooks
At some point, you can’t get any further with linked lists, selection sort, and voodoo Big O, and you have to go get a real algorithms textbook and learn all that horrible math, at least a little. …
Ещё от Виталика. Есть такая интересная структура данных: Merkle tree. В посте же речь пойдёт о Verkle tree. Схожая штука, но с гораздо более компактными доказательствами.
#datastructure #crypto #cs
#datastructure #crypto #cs
👍5
Хороший разбор bloom filters. Структура данных, которая даёт за константное время и маленькую память проверить, входит ли значение в множество. Но есть один нюанс: если ответ "не входит", то точно не входит. А вот если ответ "входит", то может быть и false positive. Коллизии, мать их.
#cs #datastructure
#cs #datastructure
👍5
Приятный интерактивный разбор того, как работает одна из простых версий CRDT.
#cs #network #datastructure
#cs #network #datastructure
Хочется закрыть ту серию постов про CRDT. Про сам алгоритм уже по сути не будет. Будет про то, как его прикрутить к игрушечному pixel art редактору, и как разными странными способами сэкономить на размере перегоняемых данных.
#cs #network #datastructure
#cs #network #datastructure
🔥2
Slices в Go. Обманчивы, собаки. Как и горутины, к слову. Поначалу кажется, что всё просто. Но это до первого раза, когда всё внезапно сломается. Нужно знать чуть больше про внутреннее устройство, чтобы безопасно использовать. Текущие абстракции, мать их. Пост про подводные камни в гошных динамических массивах.
#go #datastructure
#go #datastructure
Здесь уже знакомый нам автор предлагает попробовать реализовать некоторые завораживающие алгоритмы и структуры данных.
#cs #algorithm #datastructure
#cs #algorithm #datastructure
👍3
Тут какая-то странная история. Как будто челу дали обычную задачку с LeetCode, но не совсем точно передали условия, существенно повысив сложность. А чел взял, да и решил. The problem is to deep copy a linked list where each node references a random list element in addition to usual linkage, короче.
#cs #algorithm #datastructure
#cs #algorithm #datastructure
Тут в Go соптимизировали мапу, чтобы было быстрее и прикольнее. В посте сначала описывают, за счёт чего оно получилось (вкратце - Swiss Tables - нашли возможность улучшить за счёт параллельных SIMD инструкций и хитрой конструкции), а потом рассказывают, какие сложности были с реализацией этого конкретно в Go (каждая мапа - это на самом деле много мап). Интересно показывает практический подход языка - растим структуру понемногу. А ещё интересно решают проблемы с модификацией мапы во время итерации.
#go #performance #datastructure
#go #performance #datastructure
go.dev
Faster Go maps with Swiss Tables - The Go Programming Language
Go 1.24 improves map performance with a brand new map implementation
Первая часть разбора устройства persistent Clojure vector. Как так получается, что любая манипуляция создаёт новый immutable вектор, но проблем с памятью / производительностью на деле это не создаёт. Разбирается устройство базовых операций: добавить, удалить, поменять элемент по индексу.
#clojure #cs #datastructure
#clojure #cs #datastructure
👍2🔥1
И сразу вдогонку вторая часть: как на таких векторах-деревьях достаточно эффективно делать лукапы.
#clojure #cs #datastructure
#clojure #cs #datastructure