Recomiendo encarecidamente que estudie la lógica de programación. El material de ese tema es extremadamente vital para comprender los algoritmos y es independiente de cualquier lenguaje de programación en particular. Sin embargo, es una forma invaluable de aprender a entender un problema e idear instrucciones para resolverlo.
Puedo proporcionarle un poco de información sobre los tipos de algoritmos junto con algunos recursos relacionados.
Consulte este libro gratuito en línea: Estructuras de datos y algoritmos con patrones de diseño orientados a objetos en C # , por BrunoR. Preiss
- ¿Qué criterios se utilizan para contar un buen algoritmo?
- ¿Cuál es la complejidad temporal del algoritmo de búsqueda binaria?
- El emparejamiento PvP "perfectamente justo" daría como resultado una tasa de ganancia esperada del 50% para todos. Eso puede sentirse muy bajo (sesgo de confirmación, rayas malas). Además de PvP asincrónico, ¿hay alguna manera de aumentar el WR percibido de todos mientras se mantiene justo el MM?
- ¿Cuáles son las aplicaciones del mundo real de algunas estructuras de datos avanzadas, y cuándo elegiría una estructura de datos sobre otra, en el caso de estructuras de datos similares?
- ¿Dónde puedo conectarme en línea para estudiar estructuras de datos, como árboles de búsqueda binarios, montones, etc.?
Echa un vistazo a este enlace para ver la serie de videos de instrucción gratuitos de Khan Academy sobre algoritmos.
Además, este enlace a un conjunto completo de notas de clase, con ejemplos, sobre Diseño y Análisis de Algoritmos.
Aquí está la lista de los diversos temas de los videos de la Academia Khan sobre algoritmos:
¿Qué son los algoritmos y por qué debería importarle? Comenzaremos con una descripción general
de algoritmos y luego discuta dos juegos que podría usar un algoritmo para resolver de manera más eficiente: el juego de adivinar números y un juego de búsqueda de rutas.
academia Khan
Aprenda acerca de la búsqueda binaria, una forma de buscar eficientemente una variedad de elementos reduciendo a la mitad el espacio de búsqueda cada vez.
academia Khan
Aprenda cómo usar el análisis asintótico para describir la eficiencia de un algoritmo y cómo usar la notación asintótica (Big O, Big-Theta y Big-Omega) para describir con mayor precisión la eficiencia.
academia Khan
Aprenda la selección de selección, un algoritmo simple para ordenar una matriz de valores, y vea por qué no es el algoritmo más eficiente.
academia Khan
Aprenda la ordenación por inserción, otra forma simple pero no muy eficiente de ordenar una matriz de valores.
academia Khan
Aprenda el concepto de recursión, una técnica que a menudo se usa en algoritmos. Vea cómo usar la recursividad para calcular el factorial y las potencias de un número, además de generar arte.
academia Khan
Usa la técnica recursiva para resolver las Torres de Hanói, un clásico rompecabezas matemático y al que se enfrentan los monjes en un templo.
academia Khan
Learn merge sort, un algoritmo de clasificación más eficiente que se basa en gran medida en el poder de la recursividad para ordenar y combinar repetidamente sub-arrays.
academia Khan
Aprenda la ordenación rápida, otro algoritmo de ordenación eficiente que utiliza la recursividad para ordenar más rápidamente una matriz de valores.
academia Khan
Aprenda a describir gráficos, con sus bordes, vértices y pesos, y vea diferentes formas de almacenar datos de gráficos, con listas de bordes, matrices de adyacencia y listas de adyacencia.
academia Khan
Aprenda a recorrer un gráfico usando la búsqueda de amplitud primero para encontrar un nodo en particular o para asegurarse de que ha visitado todas las notas, atravesando una capa a la vez.
academia Khan
Ideas sobre cómo podría continuar su viaje de aprendizaje en algoritmos.
A continuación se presentan los temas para las notas de clase en línea para Diseño y análisis de algoritmos:
Algoritmos Notas de clase
1. Introducción
2. Matemáticas para algoritmos
Conjuntos
Funciones y relaciones
Vector de matrices de arena
Desigualdades lineales y ecuaciones lineales
3. Algoritmos codiciosos
Problema de mochila
OI Mochila
Mochila fraccional
Problema de selección de actividad
Códigos de Huffman
Árbol de expansión mínima
Algoritmo de Kruskal
Algoritmo de Prim
Algoritmo de Dijkstra
4. Divide y conquista algoritmos
5. Programación dinámica
Multiplicación de cadena matricial
Solución DP del problema de la mochila
Problema de selección de actividad Solución DP
6. Análisis amortizado
Método agregado
Método contable
Método potencial
Tabla dinámica
7. Hash Table
8. Árbol de búsqueda binaria
9. Algoritmos gráficos
Breadth-First Search (BFS)
Búsqueda de profundidad primero (DFS)
Clasificación topológica
Componentes fuertemente conectados
Euler Tour
Árbol de expansión mínimo genérico
Algoritmo de Kruskal
Algoritmo de Prim
Ruta más corta de una sola fuente
Algoritmo de Dijkstra
Algoritmo de Bellman-Ford
10. String Matching
Naive String Matching
Algoritmo de Knuth-Morris-Pratt
Algoritmo de Boyer-Moore
11. Clasificación
Ordenamiento de burbuja
Tipo de inserción
Selección Ordenar
Tipo de concha
Heap Sort
Ordenar fusión
Ordenación rápida
12. Clasificación de tiempo lineal
Contando Ordenar
Clasificación de radix
Clasificación de cubo
13. Geometría computacional
14. Complejidad computacional
Argumento teórico de la información
Argumento Adversario
NP-integridad y reducción
15. Algoritmos aproximados
Cubierta de vértice
El problema del vendedor ambulante
16. Programación lineal
17. Apéndice
I. Parábola
II Tangente
18. Códigos
19. Referencias
Página de inicio de algoritmo
Diccionario de Algoritmos y Estructuras de Datos – NIST
Diccionario de Algoritmos y Estructuras de Datos – FOLDOC
Enciclopedia en línea de secuencias enteras
Glosario (Diseño y Análisis de Algoritmos).
Libros de algoritmos y estructuras de datos
Libros de Don Knuth (y enlaces a documentos)
Libros
- Diseño de algoritmos: fundamentos, análisis e ejemplos de Internet por Michael T. Goodrich y Roberto Tamassia
- Estructuras de datos y algoritmos en Java por Michael T. Goodrich y Roberto Tamassia
- Estructuras de datos y algoritmos en C ++ por Michael T. Goodrich, Roberto Tamassia y David M. Mount
- Introducción a los algoritmos por Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest y Clifford Stein
- Centro de aprendizaje en línea: descripción general de los capítulos CLR y diapositivas de PowerPoint
Revistas
- Algorithmica: Inicio | Acceso electrónico a través de OhioLink (98 de diciembre-presente) | Problemas de impresión en Math lib.
- Diario de Algoritmos: Inicio | Acceso electrónico a través de OhioLink (ene.93 – presente)
- Journal of Graph Algorithms & Applications – Un diario electrónico disponible a través de WWW. Todos los documentos están disponibles gratuitamente en PostScript y PDF.
Campo de golf
- Algorithmist, The – dedicado a cualquier algoritmo – desde el ámbito práctico hasta el ámbito teórico.
- Material del curso de algoritmos en la red
- Curso Algoritmos en el mundo real por Guy E. Blelloch
- Soluciones algorítmicas (anteriormente Biblioteca LEDA): una biblioteca de los tipos de datos y algoritmos (tipos de números y álgebra lineal, tipos de datos básicos, diccionarios, gráficos, geometría, gráficos).
- Análisis de las conferencias de algoritmos en Princeton – Applets y Demos basados en CLR.
- Algoritmos recopilados (CALG) de la ACM
- Colección completa de animaciones de algoritmos (CCAA)
- Estructuras de datos y sistemas de números – por Brian Brown.
- Calculadora de funciones de Xiao Gang
- FAQ – Com.graphics.algorithms – mantenido por Joseph O’Rourke
- Game Theory Net
- Proyecto Grail: un entorno de cálculo simbólico para máquinas de estado finito, expresiones regulares y lenguajes finitos.
- Java Applets Center por R.Mukundan
- Notas de clase de Diane Cook
- Notas de clase para algoritmos de posgrado por Samir Khuller
- Clasificación y algoritmos de laberintos: una breve descripción de los laberintos y cómo crearlos. Definición de diferentes tipos de laberintos y sus algoritmos.
- Colas de prioridad: bibliografía electrónica sobre colas de prioridad (montones). Enlaces a informes descargables, páginas de inicio de investigadores y software.
- Biblioteca Vitual Softpanorama / Algoritmos
- Árboles de búsqueda ternarios – Algoritmo de búsqueda. Archivo PDF y ejemplos en C.
- Vendedor ambulante – bibliografía y enlaces de software.
Computabilidad
- Algoritmos y complejidad: un libro de texto descargable de Herbert S. Wilf.
- Blackbox: un sistema de planificación de tecnología SAT: Black Box es un sistema de planificación que funciona convirtiendo los problemas especificados en la notación STRIPS en problemas de satisfacción booleana y luego resolviendo los problemas con una variedad de motores de satisfacción de última generación.
- Base de datos bibliográfica para la teoría de la computabilidad: bibliografía extensa sobre computabilidad y teoría de la recursividad, mantenida por Peter Cholak.
- Compendio de problemas de optimización de NP: esta es una versión preliminar del catálogo de problemas de optimización de NP.
- Computabilidad y complejidad: un curso en línea sobre complejidad.
- Complejidad computacional y física estadística – Santa Fe, Nuevo México, Estados Unidos; 4–6 de septiembre de 2001.
- Complexity International: revista de artículos científicos que se ocupa de cualquier área de investigación de sistemas complejos.
- Teoría de la computabilidad: directorio de investigadores que trabajan en la teoría de la computabilidad y lista de problemas abiertos.
- ECCC – Coloquio electrónico sobre complejidad computacional – El Coloquio electrónico sobre complejidad computacional es un nuevo foro para el intercambio rápido y generalizado de ideas, técnicas e investigación en complejidad computacional. El Coloquio Electrónico sobre Complejidad Computacional (ECCC) da la bienvenida a trabajos, notas breves y encuestas relevantes para la teoría de la computación.
- Red de investigación de hipercomputación: el estudio de la computación más allá de lo definido por la máquina de Turing, también conocida como computación super-Turing, no estándar o no recursiva. Enlaces a personas, recursos y debates.
- Conferencia IEEE sobre Complejidad Computacional – Esta conferencia comenzó como “Estructura en Teoría de la Complejidad” en 1986. Recientemente adquirió el nuevo nombre “Conferencia sobre Complejidad Computacional”, que se usó por primera vez en 1996. CTI, DePaul University, Chicago IL; 18-21 de junio de 2001.
- SAT en vivo! – Una colección de enlaces actualizados sobre el problema de la satisfacción (solucionadores, puntos de referencia, artículos). También hay un foro de discusión disponible.
- Recursos de Roberto Bayardo – Incluye el solucionador SAT de relsat y documentos relacionados.
- Página de inicio de entornos de resolución de problemas: este sitio contiene información sobre entornos de resolución de problemas (PSE), investigaciones, publicaciones e información sobre temas relacionados con los PSE.
- SATLIB – The Satisfiability Library – Una colección de problemas de referencia, solucionadores y herramientas. Una fuerte motivación para crear SATLIB es proporcionar un banco de pruebas uniforme para solucionadores de SAT, así como un sitio para recopilar instancias de problemas SAT, algoritmos y caracterizaciones empíricas del rendimiento de los algoritmos.
- Página NP-Completeness de Stas Busygin: una propuesta para resolver problemas NP-difíciles.
Computación cuántica
- Centro de Computación Cuántica – Basado en la Universidad de Oxford. Sitio bien diseñado, con una gran cantidad de información disponible.
- D-Wave Systems, Inc. – D-Wave Systems (Home) es un portal al estado del arte en el diseño de computadoras cuánticas, sistemas operativos, algoritmos, hardware, superconductores y física cuántica.
- id Quantique – Sitio de id Quantique, Inc. Los productos incluyen un generador de números aleatorios cuánticos y un sistema de criptografía cuántica.
- MagicQ Technologies Inc. – El sitio de origen de la primera empresa de nueva creación dedicada por completo a la computación cuántica. Sin patentes o productos hasta la fecha, pero de interés en virtud de ser el primero en salir del bloque.
- Centro de investigación de arquitectura cuántica: la página de inicio de un equipo formado por Frederic Chong, Isaac Chuang y John Kubiatowicz, los tres mejores experimentadores en computación cuántica.
- Archivo de Computación Cuántica Este sitio contiene documentos técnicos y enlaces a informes de control de calidad en los medios.
- Quantum Computer Emulator (QCE): un simulador de hardware de computadora cuántico basado en Windows. Proporciona un entorno para ejecutar algoritmos cuánticos en condiciones experimentales realistas.
- Laboratorio de Física Informática Cuántica de la Academia de Ciencias de Rusia IPT – Programa de seminario “Computadora Cuántica”. Personal, información de contacto, trabajos de investigación.
- Computación cuántica en el Instituto Max Plank: proporciona una visión general de la investigación relacionada con la computadora cuántica que se lleva a cabo en el Instituto Max Plank. El enfoque principal es la computación basada en trampas de iones. Las reimpresiones seleccionadas están disponibles.
- Computación cuántica con espines electrónicos en puntos cuánticos: un estudio detallado del uso de espines electrónicos para el cálculo cuántico. Se discuten varias implementaciones posibles.
- Informática cuántica en la Universidad de Aarhus: realiza investigaciones sobre informática cuántica con énfasis en la criptografía cuántica.
Algoritmos
- Escaneo de Graham (Algoritmo de casco convexo) (Applet)
- Algoritmo de barrido de línea (applet)
- Flujo Máximo (Applet)
- SkipList (Applet)
- Matrimonio Estable (Applet)
GraphAlgorithms
Sociedades y organizaciones
- Grupo de Algoritmos Numéricos (NAG)
Geometría
- Algoritmo de barrido de línea
- Graham Scan y envoltura de regalos
- Escaneo de Graham (Algoritmo de casco convexo)
- Qhull– El algoritmo Quick Hull.