Иллюстрация и реализация структур данных и алгоритмов

алгоритм
Иллюстрация и реализация структур данных и алгоритмов

Для получения дополнительной информации см. большеGithub, я надеюсь дать звезду, спасибо \ (•◡•) /.

Зачем изучать структуры данных и алгоритмы

В практической работе многие люди не реализуют напрямую структуры данных и не пишут алгоритм для решения практических задач, потому что они реализованы внутри библиотеки классов или фреймворка, и им нужно только вызывать API, предоставляемый библиотекой классов или фреймворком. Эти API очень помогли нам быстро внедрить бизнес-требования и разработать продукты, отвечающие этим требованиям. Такие вызовы API не так сложны для программистов (юаней), что привело к тому, что в эту высокооплачиваемую отрасль приходит все больше и больше людей. Людей, занимающихся разработкой, становится все больше, и чтобы поднять порог, многие компании стали делать упор на базовые навыки кандидатов, то есть структуры данных и алгоритмы.

Технологии, которые мы обычно используем, инкапсулированы на верхнем уровне на основе структур данных и алгоритмов.Чтобы эффективно использовать эти технологии, мы должны понимать и быть знакомы со структурами данных или алгоритмами, используемыми этими технологиями. Знакомство со структурами данных и алгоритмами может очень помочь при чтении базового исходного кода, когда вызовы программы идут не так, как надо. Узкие места в производительности программ часто связаны со структурами данных и алгоритмами. Каждая структура данных имеет различные преимущества и недостатки, и каждый алгоритм имеет разную временную и пространственную сложность. Когда вы понимаете это, вы можете использовать соответствующие структуры данных и алгоритмы программа для повышения производительности.

Некоторые алгоритмы используются для решения класса задач.Если вы понимаете идею алгоритмов, вы можете использовать алгоритмы для решения подобных задач. На более продвинутом уровне, если вас не устраивает существующая технология, вы можете улучшить ее самостоятельно на основе структур данных и алгоритмов.

что такое структура данных

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

что такое алгоритм

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

Связь между структурами данных и алгоритмами

Структура данных — это базовый уровень, который обслуживает алгоритм. Алгоритмы всегда полагаются на структуры данных для решения проблем. Короче говоря, программа равна структуре данных + алгоритму.

Классификация структуры данных

Структуры данных включают линейные структуры и нелинейные структуры.

Линейная структура

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

Распространенными линейными структурами являются массивы, очереди, связанные списки и стеки.

нелинейная структура

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

Общие структуры данных

разреженный массив

очередь

куча

связанный список

хеш-таблица

Дерево

рисунок

алгоритм

рекурсия

Сортировать

найти

Алгоритм разделяй и властвуй

динамическое программирование

Алгоритм КМП

как дела

Основной алгоритм

Алгоритм Крускала

Алгоритм шахматной доски