En esta publicación, discutiremos los 10 algoritmos y estructuras de datos más importantes para la codificación competitiva.
Temas:
- Algoritmos gráficos
- Programación dinámica
- Buscando y Ordenando:
- Teoría de Números y Otras Matemáticas
- Algoritmos de flujo geométrico y de red
- Estructuras de datos
Los enlaces a continuación cubren los algoritmos más importantes y los temas de estructura de datos:
Algoritmos gráficos
- Búsqueda primero en amplitud (BFS)
- Primera búsqueda en profundidad (DFS)
- Ruta más corta desde el origen hasta todos los vértices **Dijkstra**
- Ruta más corta de cada vértice a cualquier otro vértice **Floyd Warshall**
- Árbol de expansión mínimo **Prim**
- Árbol de expansión mínimo **Kruskal**
- Clasificación topológica
- algoritmo de johnson
- Puntos de articulación (o vértices de corte) en un gráfico
- Puentes en un gráfico
Programación dinámica
- Subsecuencia común más larga
- Subsecuencia creciente más larga
- Editar distancia
- Partición mínima
- Formas de cubrir una distancia
- Ruta más larga en Matrix
- Problema de suma de subconjuntos
- Estrategia óptima para un juego
- 0-1 Problema de mochila
- Programación de la línea de montaje
Buscando y Ordenando
- Búsqueda binaria
- Ordenación rápida
- Ordenar por fusión
- Estadísticas de pedidos
- Algoritmo KMP
- carpa de rabin
- algoritmo de Z
- Coincidencia de cuerdas Aho Corasick
- Clasificación de conteo
- 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
- Prueba de primalidad | Conjunto 1 (Introducción y Método Escolar)
- Prueba de primalidad | Juego 2 (Método Fermat)
- Prueba de primalidad | Conjunto 3 (Miller-Rabin)
- Tamiz de Eratóstenes
- Tamiz segmentado
- Teorema de Wilson
- Factorización prima
- Algoritmo rho de Pollard
Algoritmos aritméticos de módulo
- Algoritmos euclidianos básicos y extendidos
- Función totiente de Euler
- Exponenciación modular
- Multiplicativo Modular Inverso
- Teorema del resto chino Introducción
- Teorema del resto chino e implementación del módulo inverso
- nCr%m y esto .
Misceláneas:
- Contando Inversiones
- Contando inversiones usando BIT
- exponenciación logarítmica
- Raíz cuadrada de un número entero
- Descomposición ligera pesada , esto y esto
- Rango de array
- Eliminación Gaussiana para Resolver Ecuaciones Lineales
- algoritmo húngaro
- corte de enlace
- el algoritmo de Mo y esto
- Factorial de un gran número en C++
- Factorial de un gran número en Java+
- Multiplicación campesina rusa
- Número catalán
Todos los artículos sobre algoritmos matemáticos
Algoritmos de flujo geométrico y de red
- Casco convexo
- Escaneo de graham
- Intersección de línea
- Árbol de intervalos
- Exponenciación matricial y esto
- Implementación de Maxflow Ford Furkerson Algo y Edmond Karp
- corte mínimo
- Problema de matrimonio estable
- Algoritmo Hopcroft-Karp para coincidencia máxima
- Algoritmo de Dinic y e-maxx
Todos los artículos sobre algoritmos geométricos
Estructuras de datos
- Árbol indexado binario o árbol Fenwick
- Árbol de segmentos ( RMQ , Range Sum y Lazy Propagation )
- Árbol KD (Ver insertar , mínimo y eliminar )
- Conjunto disjunto de búsqueda de unión ( detección de ciclo y compresión por rango y ruta )
- Intentos
- Array de sufijos ( esto , esto y esto )
- Tabla dispersa
- sufijo autómatas
- Sufijo autómatas II
- 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