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

прежде чем ответить на ваш вопрос, я хочу задать вам несколько вопросов:

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

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

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

Структуры данных и алгоритм очень важны, потому что с увеличением сложности компьютерных алгоритмов увеличивается объем использования данных, что может повлиять на производительность приложения и может создать некоторые проблемы:

Скорость обработки: для обработки очень больших данных требуется высокоскоростная обработка, но с ростом объема данных процессор может не обеспечить требуемую скорость обработки.

Поиск данных. Получение конкретной записи из базы данных должно быть быстрым и с оптимальным использованием ресурсов.

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

Всякий раз, когда вы работаете в крупной компании, вам приходится работать с такими сложными алгоритмами.

Хорошо, позвольте мне рассказать вам, как вы можете начать изучать алгоритмы?

Прежде всего, вы должны научиться программированию в целом, вы должны знать основные принципы, такие как Объявление переменных, >массивы, функции, ООП(объектно-ориентированное программирование) и Структура данных (например, связанный список, деревья, списки, стеки, очереди , график и хэш).

а затем вам нужно знать другой тип алгоритма, например:
- Линейный поиск.
- Двоичный поиск.
- Нижняя граница.
- Верхняя граница.
- Последовательный поиск. Алгоритмы сортировки:
- SBI
(выборка, пузырек, вставка).
- Сортировка слиянием.
- Heapsort.
- Быстрая сортировка
«используйте ее везде, она хорошо работала для всех алгоритмов».Алгоритмы поиска строк:
— основы
строка, реверс строки, палиндромная подстрока, префикс, суффикс, граница анаграмма Поиск закономерности. Наивный "сравнить каждый символ шаблона (P) с каждым символом текста (T)".
- KMP
- Boyer Moore
- Массив суффиксов
«просто индексы отсортированных суффиксов строки — о, это очень важно, экономит много времени, поэтому ваши тесты проходят легко».Теория графов:
- BFS
- DFS
- предварительный заказ
«узел, левый, затем правый».
- постзаказ
«влево, вправо, затем узел».
— по порядку
«влево, узел, затем вправо».
 – Двоичное дерево
"максимум 2 узла".
 – Двоичное дерево поиска.
 – Деревья.

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