Los 10 mejores algoritmos y estructuras de datos para la programación competitiva

 

En esta publicación, discutiremos los 10 algoritmos y estructuras de datos más importantes para la codificación competitiva.

Temas: 

  1. Algoritmos gráficos
  2. Programación dinámica
  3. Buscando y Ordenando:
  4. Teoría de Números y Otras Matemáticas
  5. Algoritmos de flujo geométrico y de red
  6. Estructuras de datos

competitive-programming

Los enlaces a continuación cubren los algoritmos más importantes y los temas de estructura de datos:

Algoritmos gráficos

 
  1. Búsqueda primero en amplitud (BFS)
  2. Primera búsqueda en profundidad (DFS)
  3. Ruta más corta desde el origen hasta todos los vértices **Dijkstra**
  4. Ruta más corta de cada vértice a cualquier otro vértice **Floyd Warshall**
  5. Árbol de expansión mínimo **Prim**
  6. Árbol de expansión mínimo **Kruskal**
  7. Clasificación topológica
  8. algoritmo de johnson
  9. Puntos de articulación (o vértices de corte) en un gráfico
  10. Puentes en un gráfico

Todos los algoritmos gráficos 

Programación dinámica

  1. Subsecuencia común más larga
  2. Subsecuencia creciente más larga
  3. Editar distancia
  4. Partición mínima
  5. Formas de cubrir una distancia
  6. Ruta más larga en Matrix
  7. Problema de suma de subconjuntos
  8. Estrategia óptima para un juego
  9. 0-1 Problema de mochila
  10. Programación de la línea de montaje

Todos los algoritmos de DP
 

Buscando y Ordenando

  1. Búsqueda binaria
  2. Ordenación rápida
  3. Ordenar por fusión
  4. Estadísticas de pedidos
  5. Algoritmo KMP
  6. carpa de rabin
  7. algoritmo de Z
  8. Coincidencia de cuerdas Aho Corasick
  9. Clasificación de conteo
  10. Algoritmo de Manacher: Parte 1 , Parte 2 y Parte 3

Todos los artículos sobre búsqueda , clasificación y búsqueda de patrones

Teoría de Números y Otras Matemáticas

Números primos y factorización prima 

  1. Prueba de primalidad | Conjunto 1 (Introducción y Método Escolar)
  2. Prueba de primalidad | Juego 2 (Método Fermat)
  3. Prueba de primalidad | Conjunto 3 (Miller-Rabin)
  4. Tamiz de Eratóstenes
  5. Tamiz segmentado
  6. Teorema de Wilson
  7. Factorización prima
  8. Algoritmo rho de Pollard

Algoritmos aritméticos de módulo 

  1. Algoritmos euclidianos básicos y extendidos
  2. Función totiente de Euler
  3. Exponenciación modular
  4. Multiplicativo Modular Inverso
  5. Teorema del resto chino Introducción
  6. Teorema del resto chino e implementación del módulo inverso
  7. nCr%m y esto .

Misceláneas:

  1. Contando Inversiones
  2. Contando inversiones usando BIT
  3. exponenciación logarítmica
  4. Raíz cuadrada de un número entero
  5. Descomposición ligera pesada , esto y esto
  6. Rango de array
  7. Eliminación Gaussiana para Resolver Ecuaciones Lineales
  8. algoritmo húngaro
  9. corte de enlace
  10. el algoritmo de Mo y esto
  11. Factorial de un gran número en C++
  12. Factorial de un gran número en Java+
  13. Multiplicación campesina rusa
  14. Número catalán

Todos los artículos sobre algoritmos matemáticos 

Algoritmos de flujo geométrico y de red

  1. Casco convexo
  2. Escaneo de graham
  3. Intersección de línea
  4. Árbol de intervalos
  5. Exponenciación matricial y esto
  6. Implementación de Maxflow Ford Furkerson Algo y Edmond Karp
  7. corte mínimo
  8. Problema de matrimonio estable
  9. Algoritmo Hopcroft-Karp para coincidencia máxima
  10. Algoritmo de Dinic y e-maxx

Todos los artículos sobre algoritmos geométricos 

Estructuras de datos

  1. Árbol indexado binario o árbol Fenwick
  2. Árbol de segmentos ( RMQ , Range Sum y Lazy Propagation )
  3. Árbol KD (Ver insertar , mínimo y eliminar )
  4. Conjunto disjunto de búsqueda de unión ( detección de ciclo y compresión por rango y ruta )
  5. Intentos
  6. Array de sufijos ( esto , esto y esto )
  7. Tabla dispersa
  8. sufijo autómatas
  9. Sufijo autómatas II
  10. ACV y RMQ

Todos los artículos sobre estructuras de datos avanzadas. 

¿Cómo empezar?  
Consulte ¿Cómo comenzar con la programación competitiva? 

¿Cómo practicar?  
Consulte https://practice.geeksforgeeks.org/ 

¿Cuáles son los mejores algoritmos en las preguntas de la entrevista?  
Los 10 mejores algoritmos en preguntas de entrevista 

¿Cómo prepararse para ACM – ICPC?  
¿Cómo prepararse para ACM – ICPC? 

Este es un borrador inicial. Pronto agregaremos más enlaces y algoritmos a esta publicación. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

El mayor error que cometen los programadores es probablemente desanimarse y no practicar lo suficiente. O practicando solo en problemas en los que sienten que son buenos.
– Derek Kisman, también conocido como Snapdragon

Cursos relacionados

Programación Competitiva – Curso en Vivo

Dar el primer paso siempre es difícil, ¿no? Pero decimos que no, ¿por qué? Porque trajimos un curso que lo ayudará a encabezar las listas de los principales concursos y entrevistas de codificación. Genial, ¿verdad? Puede comenzar su viaje de ser un programador competitivo ahora, pero antes de comenzar, conozca los conceptos básicos de las estructuras de datos y los algoritmos y los fundamentos de la programación. Inscríbase hoy , nos vemos dentro del curso.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *