No creo que haya forma de ordenar los algoritmos por dificultad. También es bastante difícil clasificar entre algoritmos avanzados e intermedios. Pero una vez que haya resuelto algunos métodos ambiciosos y problemas ad-hoc, puede comenzar con lo siguiente.
a. Matemáticas
- Tamiz
- Aritmética modular
- Euler Phi
- Geometría simple (segmento de línea, etc.)
si. Teoría de grafos
- ¿Cómo se comunican los dispositivos GPS con los servidores?
- ¿Cuál es el método computacionalmente más eficiente para agregar todos los elementos de una matriz (o matriz)?
- Dada una serie de dígitos, ¿cómo los clasifica con la complejidad temporal o (n)?
- ¿Cuáles son los mejores algoritmos de Real Space Renormalization Group?
- ¿Cómo es inventar tu propio algoritmo?
- Breadth First Search
- Profundidad primera búsqueda
- Clasificación topológica
- Componentes fuertemente conectados
- Componentes Biconnectados
- Encontrar puentes y puntos de articulación
- Encontrar el ciclo
C. Estructuras de datos básicas (pila, cola, cola prioritaria)
re. Algoritmos de clasificación básicos (clasificación de burbujas, clasificación por inserción, clasificación por selección, clasificación por conteo)
mi. Búsqueda binaria
Una vez que tenga más confianza, puede seguir adelante con lo siguiente.
a. Programación dinámica
si. Árbol de segmento
C. Algoritmos de clasificación (clasificación de fusión, clasificación rápida)
re. Algoritmos Gráficos
- Árbol de expansión mínima (Kruskal y Prims)
- Dijkstra
- Floyd-Warshall
- Bellman Ford
mi. Casco convexo
F. Hashing
sol. Búsqueda ternaria
Lo siguiente puede considerarse avanzado.
- Eliminación gaussiana
- Matriz de exponenciación
- Trie
- Descomposición de luz pesada
- Flujo y emparejamiento bipartito
- Antepasado común más bajo
- Knuth-Morris-Pratt
- Árbol de sufijo
PD: me he perdido toneladas.