План обучения по структурам данных и алгоритмам-Learning Plan for Data Structures and Algorithms 1. Введение в структуры данных / Introduction to Data Structures Массив / Array Основы массивов и их базовые операции. / Basics of arrays and their fundamental operations. Связный список / Linked List Виды: однонаправленные, двунаправленные и кольцевые списки. / Types: singly, doubly, and circular lists. Стек / Stack Реализация операций стека и понимание применений. / Implementing stack operations and understanding their applications. Очередь / Queue Основы очередей и кольцевых очередей. / Fundamentals of queues and circular queues. Дерево / Tree Основные понятия деревьев и бинарных деревьев. / Basic concepts of trees and binary trees. Куча / Heap Понимание структуры кучи и алгоритма сортировки кучей. / Understanding heap structure and heap sort algorithm. Граф / Graph Введение в графы, их типы и представление. / Introduction to graphs, their types, and representation. Хеш-таблица/Множество / Hash Table/Set Основы хеширования, хеш-таблиц и хеш-множеств. / Fundamentals of hashing, hash tables, and hash sets. 2. Основы алгоритмов / Basics of Algorithms Двойные указатели / Two Pointers Понимание и применение техники с двумя указателями. / Understanding and applying the two-pointer technique. ** Скользящее окно/Бегущее окно/Sliding window https://www.geeksforgeeks.org/window-sliding-technique/ https://www.baeldung.com/cs/sliding-window-algorithm Алгоритмы поиска / Search Algorithms Поиск минимального и максимального элемента / Finding Minimum and Maximum Линейный поиск / Linear Search Бинарный поиск / Binary Search Алгоритмы сортировки / Sorting Algorithms Сортировка выбором / Selection Sort Пузырьковая сортировка / Bubble Sort Сортировка вставками / Insertion Sort Сортировка слиянием / Merge Sort Быстрая сортировка / Quick Sort Сортировка кучей / Heap Sort Карманная сортировка / Bucket Sort Поразрядная сортировка / Radix Sort 3. Продвинутые алгоритмические концепции / Advanced Algorithmic Concepts 1. Основы динамического программирования / Basics of Dynamic Programming Основы и решение примеров задач. / Basics and solving example problems. 2. Алгоритмы на графах / Graph Algorithms Минимальное остовное дерево / Minimum Spanning Tree Минимальное расстояние в графе / Minimum Distance in Graph 3. Продвинутое динамическое программирование / Advanced Dynamic Programming Наибольшая общая подпоследовательность (НОП) / Longest Common Subsequence (LCS) Задача о рюкзаке 0/1 / 0/1 Knapsack Problem Максимальная сумма подмассива / Maximum Subarray Sum Подпоследовательности и подмассивы / Subsequences and Subarrays Минимальный путь в треугольнике / Minimum Path in Triangle Решение задач на разрезание / Cutting Problems Пути в матрице / Paths in a Matrix 4. Структуры данных и алгоритмы на строках / Data Structures and Algorithms on Strings Алгоритмы поиска подстроки / Substring Search Algorithms Наивный алгоритм поиска подстроки / Naive Substring Search Алгоритм Рабина-Карпа / Rabin-Karp Algorithm Алгоритм Кнута-Морриса-Пратта (КМП) / Knuth-Morris-Pratt (KMP) Algorithm Суффиксный массив / Suffix Array Суффиксное дерево / Suffix Tree Алгоритм Манакера / Manacher's Algorithm Z-алгоритм / Z-Algorithm 5. Продвинутые алгоритмы на графах / Advanced Graph Algorithms Алгоритм Краскала / Kruskal's Algorithm Алгоритм Прима / Prim's Algorithm Алгоритм Дейкстры / Dijkstra's Algorithm Алгоритм Беллмана-Форда / Bellman-Ford Algorithm Алгоритм Флойда-Уоршалла / Floyd-Warshall Algorithm Алгоритм Тарьяна / Tarjan's Algorithm Алгоритмы поиска мостов и точек сочленения / Bridge and Articulation Point Algorithms Алгоритмы поиска циклов / Cycle Detection Algorithms 6. Теория и практика хеширования / Theory and Practice of Hashing Хеш-алгоритм / Hash Algorithm Продвинутые техники хеширования / Advanced Hashing Techniques Хеш-таблица с открытой адресацией / Open Addressing Hash Table Совершенное хеширование и универсальное хеширование / Perfect and Universal Hashing 7. Комбинаторика и теория чисел / Combinatorics and Number Theory Умножение матричных цепочек (МЦУ) / Matrix Chain Multiplication (MCM) Алгоритмы работы с дискретным логарифмом / Discrete Logarithm Algorithms 8. Рекурсия и перебор / Recursion and Enumeration Рекурсия / Recursion Задача N-королев / N-Queens Problem Разделение и завоевание / Divide and Conquer Алгоритмы работы с разреженными таблицами / Sparse Table Algorithms 9. Кодирование и сжатие данных / Coding and Data Compression Алгоритм кодирования Хаффмана / Huffman Coding 4. Техники поиска и оптимизации / Search and Optimization Techniques Поиск в ширину - BFS / Breadth-First Search - BFS Поиск в глубину - DFS / Depth-First Search - DFS Метод обратного трассирования (Backtracking) / Backtracking Method Жадные алгоритмы / Greedy Algorithms 5. Практическое применение и решение задач / Practical Application and Problem Solving Работа над реальными задачами и проектами. / Working on real tasks and projects. Участие в соревнованиях по программированию. / Participating in programming competitions. 6. Повторение и продвинутое изучение / Review and Advanced Study Пересмотр сложных тем. / Reviewing complex topics. Изучение научных статей и продвинутых материалов. / Studying scientific articles and advanced materials. 7. Непрерывное обучение и практика / Continuous Learning and Practice Регулярное решение задач на платформах вроде LeetCode, Codeforces и других. / Regularly solving problems on platforms like LeetCode, Codeforces, and others. Постоянное обновление знаний о последних разработках в области алгоритмов и структур данных. / Continuously updating knowledge about the latest developments in the field of algorithms and data structures.