¿Cuál es el orden de lectura de estructuras de datos y algoritmos para un aprendizaje fluido?

Matemáticas:

(a) Teoría de números
Generación de números primos (tamiz, tamiz segmentado)
Teorema de Euler Totient
Teorema de Fermat
HCF y LCM (Euclides)
Ecuaciones lineales de diofantinas (Euclides extendidos)
Aritmética de módulo (suma, multiplicación, sustracción, inversa modular)
Hallazgo del ciclo (Floyd Algo y Brent Algo)
Factorización entera (División de prueba, método Pollard Rho)
Teorema de Lucas (simple y avanzado)
Teorema del resto chino
Teorema de Wilson
Miller – Rabin Primality Testing
Números perfectos
Conjetura de Goldbach

(b) Probabilidad
Probabilidad básica y probabilidad condicional
Variables aleatorias
Funciones generadoras de probabilidad
Expectativa
Distribución de probabilidad [Binomial, Poisson, Normal, Bernoulli]

(c) Contando
Principio de casillero
Exclusión inclusión
Números especiales [Stirling, Fibonacci, catalán, euleriano, armónico, Bernoulli]
Conteo de polia
Lema de Burnside

(d) Ciclos de permutación

(e) Álgebra lineal
Suma y resta de matrices
Multiplicación (algoritmo de Strassen), exponenciación logarítmica
Transformaciones de matriz [Transposición, rotación de matriz, que representa transformaciones lineales usando matriz]
Determinante, rango e inverso de la matriz [Eliminación Gaussiana, Eliminación Gauss Jordan]
Sistema de resolución de ecuaciones lineales
Matriz de exponenciación para resolver recurrencias
Eigenvalores y vector Eigen
Raíces de un polinomio [Factorización prima de un polinomio, raíces enteras de un polinomio]
Interpolación de Lagrange

(e) Teoría del juego
Conceptos básicos y juego de Nim [Teorema de Grundy, número de Grundy]
Hackenbush

(f) Teoría del grupo
Lema de Burnside
Teorema de Polya

Gráficos:

(a) Representación gráfica
Matriz de adyacencia
Lista de adyacencia
Matriz de incidencia
Lista de borde

(b) Tipos de gráficos
Dirigido
No dirigido
Ponderado
No ponderado
Plano
Hamilton
Euler
Gráficos especiales

(c) DFS y su aplicación
Detección de ciclo
Puntos de articulación
Puentes
Componente fuertemente conectado
Componente conectado
Encontrar el camino
Resolviendo el laberinto
Biconnectividad en el gráfico
Clasificación topológica
Comprobación bipartita
Prueba de planaridad
Algoritmo de relleno de inundación

(d) BFS y su aplicación
Camino más corto (número de bordes)
Comprobación bipartita
Componentes conectados

(d) Árbol de expansión mínima
Algoritmo de Prim
Algoritmo de Kruskal

(d) Ruta más corta de fuente única
Dijkstra
Bellman Ford

(e) Todos los pares de la ruta más corta
Algoritmo de Floyd Warshall

(f) Euler Tour

(g) Flujo
Ford-Fulkerson [PFS, DFS, BFS]
Algoritmo de Dinic
Costo mínimo: flujo máximo [Algo de ruta más corto sucesivo, algoritmo de cancelación de ciclo]
BPM ponderado máximo [algoritmo Kuhn Munkres / Método húngaro]
Stoer Wagner Min-Cut Algo
Hop-Kraft BPM
Algoritmo de reducción de Edmond Blossom

(h) Otros temas importantes sobre gráficos
2-SAT,
LCA
Máxima coincidencia de cardinalidad
Flujo de aplicación
Min Path Cover Over Dag
Camino disyuntivo de borde independiente
Cubierta mínima de vértice
Máximo conjunto independiente

Estructuras de datos:
Matrices
Lista enlazada
Árboles (árbol binario y árbol de búsqueda binaria)
Pilas
Colas
Montón
Tablas Hash
Estructuras de datos de conjunto disjunto
Trie
Árbol de segmento
Árbol de índice binario
Treap

Búsqueda y clasificación:
Búsqueda lineal
Búsqueda binaria
Búsqueda ternaria
Selección Ordenar
Ordenamiento de burbuja
Tipo de inserción
Ordenar fusión
Ordenación rápida
Selección rápida
Heap Sort
Clasificación de radix
Contando Ordenar

Codicioso:
Problemas clásicos de codicia y concepto
ejemplo: mochila fraccional

Programación dinámica Problemas clásicos
Editar distancia
Rompecabezas de caída de huevos
Mochila entera
Conjunto independiente más grande
La secuencia biotónica más larga
Subsecuencia común más larga
Subcadena común más larga
Subsecuencia creciente más larga
La subsecuencia palindrómica más larga
Subcadena palindrómica más larga
Subcadena más larga sin repetir carácter
Multiplicación de cadena matricial
Submatriz cuadrada de tamaño máximo con una
Longitud máxima de pares de cadenas
Subsecuencia creciente de suma máxima
Árbol de búsqueda binario óptimo
Problema de partición de palíndromo
Establecer problema de partición
Subconjunto Suma
Word Wrap Problem

Programación dinámica Técnicas avanzadas
DP + Tree
DP + enmascaramiento de bits
DP + Binary Search
DP + Graph
DP + exponenciación matricial
DP + espacio de probabilidad
DP + Recurrencia de grietas

Divide y vencerás
Problemas y conceptos clásicos
Ordenar fusión
Puntos de par más cercanos

Otras técnicas de diseño de algoritmos:
BackTracking
Hombre en medio
Newton-Raphson para llegar al punto fijo
Fuerza bruta
Algo constructivo
Ventana deslizante
Clasificación de panqueques

Recursos:
Estructuras de datos y algoritmo:
Tutoriales de algoritmos
Estructuras de datos y algoritmos
Inverso Multiplicativo Modular
Descomposición ligera pesada
Tutorial: Actualizaciones de rango en Fenwick Tree por Amey Dharwadker en concursos de programación
visualizar estructuras de datos y algoritmos a través de animaciones
Truco del concurso de codificación: reunirse en el medio
Introducción a la programación dinámica
C ++:
Tutorial de programación de C ++
Contenedores – Referencia de C ++
Guía del programador de la biblioteca de plantillas estándar

Debería probar este sitio web http://www.codersmaze.com, que proporciona explicaciones para estructuras de datos y algoritmos de una manera muy estructurada y organizada.
Puede probar sus cuestionarios para evaluar su comprensión de cualquier estructura de datos.
Espero que esto ayude !