Структуры данных — это просто специализированные форматы для организации и хранения данных. Они крайне необходимы для разработки программного обеспечения, поэтому их правильный выбор очень важен.
“Плохие программисты беспокоятся о коде. Хорошие программисты беспокоятся о структурах данных и отношениях между ними”, — Линус Торвальдс, создатель Linux.
Одна из важнейших характеристик в выборе правильной структуры — ее нотация О большое.
Что такое нотация О большое? Это язык описания производительности алгоритма и его масштабирования (не важно, насколько он быстрый).
Существует множество статей о структурах данных. В этой я сконцентрируюсь на реализации на Python, потому что:
List — это упорядоченный изменяемый набор элементов.
List
Set — это неупорядоченный набор уникальных хэшируемых объектов.
Set
Dict отображает хэшируемые значения в произвольные изменяемые объекты.
Dict
Defaultdict — это словарь, который запускается со значением по умолчанию, когда каждый ключ встречается впервые.
Default dict
Deque — это двусторонняя очередь.
Deque
Heapq — это двоичное дерево поиска, для которого каждый родительский узел имеет значение меньшее или равное любому из потомков.
Heapq
Counter — это подкласс dict для подсчета хэшируемых объектов. Это неупорядоченный набор, в котором элементы хранятся как ключи словаря и их значения как значения словаря.
Перевод статьи Eyal Trabelsi: A Comprehensive Guide to Python’s Built-In Data Structures
Комментарии