Si tuviera que idear un curso acelerado de 10 días en algoritmos (en su mayoría trabajando desde el principio, y obviamente dividiendo las cosas y ordenándolas de manera bastante arbitraria), podría dividirlo de esta manera:
1. Algoritmos de ordenación: aprenda algunos algoritmos de ordenación simples, como la ordenación por burbujas y la ordenación por inserción. Aprenda algunos buenos algoritmos de clasificación, como Quicksort, Merge Sort y Heapsort. Comprenda cómo funciona cada uno, qué características de rendimiento tiene cada uno y por qué.
2. Algoritmos de búsqueda: comprenda los conceptos básicos de la búsqueda de amplitud en primer lugar y de profundidad en primer lugar. ¿Cómo puede ayudarle si los datos están organizados de alguna manera? Tómese el tiempo para entender la búsqueda binaria y la búsqueda A *.
3. Algoritmos de grafos: algoritmos de estudio para encontrar rutas / ciclos hamiltonianos. Estudie el algoritmo de Dijkstra y otros algoritmos para encontrar la ruta más corta entre dos nodos gráficos. Estudia el problema del vendedor ambulante y la coloración de gráficos.
- Tengo 6 meses para aprender español en América del Sur. ¿Qué país es mi mejor opción?
- ¿Por qué apesto tanto en Historia y Geografía?
- Mi hermano de 9 años sabe algo sobre casi todo lo relacionado con las computadoras y el software y está ansioso por aprender cosas nuevas. ¿Cómo puedo enseñarle nuevo material todos los días?
- No tomo nada de las conferencias. ¿Estoy perdiendo el tiempo yendo a escucharlos?
- Si quiero comprar una franquicia en el futuro, ¿dónde debo solicitar trabajo para practicar y aprender cómo vender y comunicarme? Solo tengo un grado 12.
4. Autómatas y análisis: aprenda sobre las máquinas de Turing. Aprender sobre autómatas finitos deterministas y expresiones regulares. Aprende sobre los autómatas pushdown y autómatas celulares. Lea el artículo sobre la automatización celular en Wolfram MathWorld y embarque en una caminata wiki épica.
5. Teoría de colas y algoritmos de red: conozca las colas de prioridad. Aprende sobre el algoritmo del ascensor. Aprenda sobre el protocolo de red IP, y compare y contraste TCP y UDP.
6. Estimación y algoritmos heurísticos: aprenda sobre la estimación de Fermi, los algoritmos de Monte Carlo, el método de Newton y los algoritmos evolutivos.
7. Algoritmos de hash – Aprenda cómo se implementan y utilizan las tablas hash. Aprende sobre funciones hash criptográficas.
8. Aprendizaje automático: estudie las redes neuronales, los algoritmos de clasificación, las cadenas de Markov y los filtros bayesianos.
9. Algoritmos de gráficos: algoritmos de estudio relacionados con la geometría y la óptica.
10. Concurrencia: aprenda sobre el problema de la exclusión mutua (y las diversas soluciones a ese problema). Aprenda sobre la computación en paralelo, y los problemas de condiciones de carrera, punto muerto y estado inconsistente. Aprenda sobre la programación de hilos / procesos.
Después de estudiar estas cosas, definitivamente sabrás algo acerca de los algoritmos.