[Перевод] Моя любимая маленькая хеш-таблица

Я из тех, кто всерьёз задумывается о проектировании и реализации хеш-таблиц. Недавно обнаружился донельзя милый вариант, который заслуживает широкой огласки. Это робин-гудовская открытая адресация с применением линейного зондирования, где размер самой таблицы увеличивается как степень двойки. Если вы не знакомы с терминологией хеш-таблиц, то все эти слова могут показаться вам каким-то невразумительным салатиком, но, когда мы разберём этот пример с привлечением кода — всё должно стать понятнее. Чтобы не пришлось усложнять код, начнём со следующих допущений:

https://habr.com/ru/articles/975636/

#программирование #хештаблицы #структуры_данных #оптимизация #параллельные_вычисления

Моя любимая маленькая хеш-таблица

Я из тех, кто всерьёз задумывается о проектировании и реализации хеш-таблиц. Недавно обнаружился донельзя милый вариант, который заслуживает широкой огласки. Это робин-гудовская открытая адресация с...

Хабр

Структуры данных в C++

Всем привет! Давно хотел собрать пост по структурам данным, которые есть в C++ и кратенько описать преимущество каждой из них. В первой итерации статьи начнем с тех, что есть в стандартной библиотеке STL. Начнем с того, что структура данных — это формальный способ организации и хранения информации в памяти компьютера, который определяет, как данные располагаются, как к ним обращаются и какие операции над ними выполняются наиболее эффективно. Выбор структуры данных напрямую определяет производительность программы. Если операция выполняется миллионы раз в секунду — даже незначительное отличие во времени вставки или доступа может стать решающим. Стандартная библиотека C++ (STL) предоставляет широкий набор структур данных, каждая из них решает определённый класс задач: от линейного хранения элементов до ассоциативных структур с поиском по ключу. В этой статье мы кратко рассмотрим основные контейнеры, их внутреннюю организацию и типичные сценарии применения.

https://habr.com/ru/articles/974274/

#структуры_данных #c++ #stl #stl_контейнеры #stl_containers

Структуры данных в C++

Всем привет! Давно хотел собрать пост по структурам данным, которые есть в C++ и кратенько описать преимущество каждой из них. В первой итерации статьи начнем с тех, что есть в стандартной библиотеке...

Хабр

Card DOM на языке Argentum: мы дома

Пятая статья в серии о DOM-подобных моделях данных в разных языках программирования. В предыдущих частях мы разобрали DOM-подобные структуры данных, оценили их поддержку в ряде языков с помощью бенчмарка CardDOM и сравнили их реализацию в JavaScript . и С++ , Rust и D-lang (а также упомянули Zig, Odin, Jai, Python, V, Cone и Pony). Эта растянутая на несколько публикаций серия показала, что современные языки удивительно плохо приспособлены для работы с документной объектной моделью — фундаментальной структурой данных современных высокоуровневых приложений. Посмотрим, как с этой задачей справляется Argentum — язык, для которого такие структуры данных являются нативными.

https://habr.com/ru/articles/967770/

#programming_languages #data_structures #структуры_данных #язык_программирования #сравнение

Card DOM на языке Argentum: мы дома

Это пятая статья в серии про DOM-подобные модели данных в различных языках программирования. В прошлых сериях: DOM-подобные структуры данных: что такое, почему они присутствуют везде, как узнать,...

Хабр

Как скопировать дерево, но не точь-в-точь

На собеседованиях и литкоде любят вращать бинарные деревья. Но что насчёт трансформации обычного дерева в другое? Как решить эту задачу, и какие могут быть подходы? Рассмотрим на опыте трансляции одного синтаксического в другое, чтобы разобраться.

https://habr.com/ru/companies/pvs-studio/articles/967530/

#AST #деревья #паттерны #посетитель #итератор #javascript #java #кодогенерация #статический_анализ #структуры_данных

Как скопировать дерево, но не точь-в-точь

На собеседованиях и литкоде любят вращать бинарные деревья. Но что насчёт трансформации обычного дерева в другое? Как решить эту задачу, и какие могут быть подходы? Рассмотрим на опыте трансляции...

Хабр

[Перевод] Книга «Современный C#. Разработка настольных, облачных, мобильных и веб-приложений». Работа со встроенными массивами

Приветствуем, Хабр. Сегодня расскажем о нашей большой ноябрьской новинке – книге «

https://habr.com/ru/companies/bhv_publishing/articles/964200/

#структуры_данных #память #C# #книги #оптимизация

Книга «Современный C#. Разработка настольных, облачных, мобильных и веб-приложений». Работа со встроенными массивами

Приветствуем, Хабр. Сегодня расскажем о нашей большой ноябрьской новинке – книге « Современный C#. Разработка настольных, облачных, мобильных и веб-приложений ». Иэн Гриффитс продолжает многолетнюю...

Хабр

Реализация DOM-подобных структур данных на C++

Это третья статья в серии про DOM-подобные модели данных в различных языках программирования. Ранее мы рассмотрели что такое DOM-подобные структуры данных и как оценить их поддержку языках программирования и препарировали JavaScript . Сегодня мы проверим как с Card DOM справится С++.

https://habr.com/ru/articles/957906/

#programming_languages #benchmark #c++ #data_structures #языки_программирования #сравнение #структуры_данных

Реализация DOM-подобных структур данных на C++

Это третья статья в серии про DOM-подобные модели данных в различных языках программирования. В предыдущих частях: DOM-подобные структуры данных: что это такое, где встречаются и как оценить их...

Хабр

Структуры данных. Часть 1

Нельзя стать отличным программистом без глубокого понимания структур данных, потому что программирование - это написание алгоритмов и выбор подходящей структуры данных для этого алгоритма. Алгоритм говорит компьютеру, что делать, а структура говорит компьютеру, как хранить данные из алгоритма. В этой статье мы рассмотрим такие структуры данных как: списки, кортежи и словари.

https://habr.com/ru/articles/955972/

#структуры #структура #список #списки #словарь #словари #кортежи #кортеж #данные #структуры_данных

Структуры данных. Часть 1

Структура данных — это способ организации данных в компьютере, позволяющий прогерам эффективно и удобно их использовать. Структур данных существует достаточно много, и мы с Вами познакомимся с...

Хабр

Книга: «Грокаем структуры данных»

Каждый разработчик знает, насколько важны структуры данных. Без них не обходится ни один серьезный проект, будь то оптимизация запросов, работа с Big Data или просто написание чистого и эффективного кода. Не зря же на собеседованиях постоянно спрашивают про деревья, хеш-таблицы и сложность алгоритмов! Вы только приступили к изучению структур данных? Хотите освежить знания, полученные в ходе обучения? В этой книге нет заумной математики, скучных доказательств и абстрактной теории. Вместо этого — понятные объяснения, рабочие примеры и реальные кейсы, с которыми ежедневно сталкиваются разработчики. Вы узнаете, как с помощью правильных структур данных ускорить поиск, эффективнее управлять очередями задач или, например, оптимизировать хранение данных. Книга построена по принципу «от простого к сложному»: начинается с базовых структур, таких как массивы и связанные списки, и постепенно переходит к более сложным — стекам, очередям, деревьям, хеш-таблицам и графам. Каждая глава содержит практические примеры, упражнения и наглядные иллюстрации, которые помогают закрепить материал. Вся теория подкреплена примерами на Python — одном из главных языков современной разработки. Если вы хотите не просто использовать структуры данных, а понимать их и применять осознанно — эта книга для вас.

https://habr.com/ru/companies/piter/articles/954670/

#big_data_analytics #разработка #библиотека_программиста #обработка_данных #хранение_данных #computer_science #алгоритмы #структуры_данных

Книга: «Грокаем структуры данных»

Привет, Хаброжители! Каждый разработчик знает, насколько важны структуры данных. Без них не обходится ни один серьезный проект, будь то оптимизация запросов, работа с Big Data или просто написание...

Хабр

Динамическая память и реализация динамического массива в C

Привет! В этой статье я подробно разберу работу с динамической памятью в языке C и покажу, как создать собственную реализацию динамического массива с нуля. Материал будет полезен тем, кто изучает программирование на C или хочет лучше понять, как работают структуры данных под капотом.

https://habr.com/ru/articles/949024/

#массив #память #динамическая_память #си #структуры_данных #программирование #динамический_массив

Динамическая память и реализация динамического массива в C

Хочу сразу сказать что не являюсь профессиональным разработчиком и только учусь, статью написал чтобы самому лучше разобраться в теме и помочь таким же начинающим как я сам. Ну что, начнем. При...

Хабр

[Перевод] Python и множества: генераторы, которые делают код чище

Команда Python for Devs подготовила перевод статьи о генераторах множеств в Python. С их помощью можно создавать, преобразовывать и фильтровать множества одной строкой кода. Разбираем примеры, практические приёмы и ошибки, которых стоит избегать.

https://habr.com/ru/articles/943720/

#Python #множества #структуры_данных #оптимизация #генераторы

Python и множества: генераторы, которые делают код чище

Команда Python for Devs подготовила перевод статьи о генераторах множеств в Python. С их помощью можно создавать, преобразовывать и фильтровать множества одной строкой кода. Разбираем примеры,...

Хабр