¿Cuáles son los 10 mejores algoritmos del siglo XX?

Los diez algoritmos principales

  1. 1946: El algoritmo de Metrópolis para Montecarlo. Mediante el uso de procesos aleatorios, este algoritmo ofrece una forma eficiente de encontrar respuestas a problemas que son demasiado complicados para resolverlos con exactitud.
  2. 1947: Método simplex para programación lineal. Una solución elegante a un problema común en la planificación y la toma de decisiones.
  3. 1950: Método de iteración del subespacio de Krylov. Una técnica para resolver rápidamente las ecuaciones lineales que abundan en la computación científica.
  4. 1951: El enfoque de descomposición de los cálculos matriciales. Un conjunto de técnicas para álgebra lineal numérica.
  5. 1957: El compilador de optimización de Fortran. Convierte el código de alto nivel en un código eficiente legible por computadora.
  6. 1959: Algoritmo QR para calcular valores propios. Otra operación de matriz crucial se hizo rápida y práctica.
  7. 1962: Algoritmos de clasificación rápida para ordenar. Para el manejo eficiente de grandes bases de datos.
  8. 1965: Transformada rápida de Fourier. Quizás el algoritmo más ubicuo en uso hoy en día, descompone las formas de onda (como el sonido) en componentes periódicos.
  9. 1977: Detección de relación de enteros. Un método rápido para detectar ecuaciones simples satisfechas por colecciones de números aparentemente no relacionados.
  10. 1987: Método rápido multipolar. Un avance en el tratamiento de la complejidad de los cálculos de n cuerpos, aplicado en problemas que van desde la mecánica celeste hasta el plegamiento de proteínas.

Página en Uta.edu

Está cubierto aquí: http://www.uta.edu/faculty/rcli/

Además, es bueno consultar este libro:
Nueve algoritmos que cambiaron el futuro
http://www.amazon.com/Nine-Algor

No podía compilar los 10 mejores algoritmos, así que voy a enumerar lo que creo que es mejor. Aquí va la lista:

Ordenación por inserción o Ordenación por selección o Ordenación por burbuja

Ordenar fusión

Ordenación rápida

Búsqueda binaria

Breadth First Search (BFS) | Implementación iterativa y recursiva

Profundidad de la primera búsqueda (DFS) | Implementación iterativa y recursiva

Algoritmo de Lee | El camino más corto en un laberinto

Algoritmo de relleno de inundación

Algoritmo de detección del ciclo de Floyd

Problema de submatriz máxima (algoritmo de Kadane)

Subsecuencia creciente más larga

Recorridos de árboles: pedidos, pedidos anticipados, pedidos posteriores

Heap Sort

Clasificación topológica en un DAG

Estructura de datos de conjunto disjunto (Algoritmo de búsqueda de unión)

Algoritmo de Kruskal para encontrar el árbol de expansión mínimo

Senderos más cortos de una sola fuente – Algoritmo de Dijkstra

Junto con los algoritmos anteriores, se espera que cada ingeniero de software implemente estructuras de datos comunes:

Implementación de la lista vinculada | Parte 1
Implementación de la lista vinculada | Parte 2

Inserción en BST
Buscar clave dada en BST
Eliminación de BST

Implementación Min Heap y Max Heap en C ++

Implementación de gráficos usando STL
Implementación de gráficos en C ++ sin usar STL

Implementación de Trie | Insertar, buscar y eliminar
Implementación Trie eficiente en memoria usando Map | Insertar, buscar y eliminar

Junto con estos, también se espera que esté familiarizado con otros paradigmas de programación como Backtracking, Dynamic Programming y Greedy Algorithms y conceptos como Hashing.

Espero que esto ayude.

Algoritmo de PageRank para google ..
Algoritmo LRU para youtube ..

More Interesting

Cómo resolver un cubo de rubik más rápido

En este algoritmo de clasificación de radix, ¿qué representa cada variable? (Java)

Cómo resolver el problema ADDGP en SPOJ

¿Qué es importante saber y estudiar para ser un excelente programador? ¿Es importante practicar programación competitiva?

¿Es la Biblia solo los algoritmos de aprendizaje automático de la realidad que nos dicen cómo se desarrolló, comenzando con el 0 que se convirtió en 1 para la luz?

¿Cómo podemos lograr la inserción en el hash en el peor de los casos en O (1) mediante el uso de la matriz, mientras que las matrices tienen problemas de extensión en filledup?

¿Cómo inserta este código un nuevo nodo en un árbol binario?

¿Por qué no ha habido un codificador indio en la región 2400+ después de Rudradev Basak, especialmente cuando la cultura de codificación en el país está en aumento?

¿Por qué el método Arrays.sort en Java implementa timsort en lugar de contar?

¿Cuál es el mejor enfoque para adivinar los diacríticos árabes mediante programación?

¿Debo aprender el concepto profundo del aprendizaje automático como el curso de Andrew Ng o es suficiente para saber qué algoritmo se utiliza cuando?

¿Es adecuado CLRS para que un principiante comience su viaje de algoritmos y estructuras de datos? En caso afirmativo, ¿cómo se debe proceder?

¿Cómo se usaron los algoritmos cuando no había computadoras?

Después de aprender Python (junto con algoritmos y estructuras de datos), ¿sería beneficioso para mí aprender Selenium o debería seguir alguna otra búsqueda? Ya trabajo con Node.js, ¿hay algo más además de Django?

¿Cuáles son algunas de las implementaciones de cola (montón) de prioridad más rápida en C ++?