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.
De la mano, no puedo recomendar ningún libro sobre algoritmos.
Dicho eso …
- Hago segmentación usando el algoritmo de cambio medio en MATLAB, pero obtengo mis objetos segmentados. ¿Cómo puedo fusionar partes segmentadas de mi objeto que son diferentes por color y tamaño?
- ¿Cómo se implementa el alogoritmo de Timsort en Java?
- ¿Cuál es el mejor algoritmo de búsqueda en programación?
- ¿Cuál es un ejemplo de un algoritmo iterativo que se ejecuta en [matemáticas] O (2 ^ n) [/ matemáticas]?
- ¿Vale la pena publicar mi algoritmo?
Vea este libro en línea gratuito: Estructuras de datos y algoritmos con patrones de diseño orientados a objetos en C # , por Bruno R. Preiss
Consulte este enlace para ver la serie de algoritmos de videos de instrucción gratuitos de Khan Academy .
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 los algoritmos y luego discutiremos 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 al reducir el espacio de búsqueda cada vez.
academia Khan
Aprenda cómo usar el análisis asintótico para describir la eficiencia del analgoritmo, 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 serie de valores.
academia Khan
Aprende el concepto de recursión, una técnica que se usa a menudo con 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 Hanoi, un rompecabezas matemático clásico y uno según los informes enfrentado por monjes en un templo.
academia Khan
Aprenda la combinación de clasificación, un algoritmo de clasificación más eficiente que depende en gran medida del poder de la recursividad para clasificar y combinar repetidamente sub-matrices.
academia Khan
Aprenda la ordenación rápida, otro algoritmo de ordenación eficiente que utiliza la recursividad para ordenar 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 utilizando la búsqueda de amplitud primero para encontrar un nodo en particular o para asegurarse de haber 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
Vectoresy matrices
Desigualdades lineales y ecuaciones lineales
3. Algoritmos codiciosos
MochilaProblema
Mochila O-I
Mochila fraccional
Problema de selección de actividad
Los códigos de Huffman
Árbol de expansión mínima
El 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 de 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. HashTable
8. Árbol de búsqueda binaria
9. Algoritmos gráficos
Breadth-FirstSearch (BFS)
Profundidad-FirstSearch (DFS)
Clasificación topológica
Componentes fuertemente conectados
EulerTour
Árbol de expansión mínimo genérico
El algoritmo de Kruskal
Algoritmo de Prim
SingleSource Shortest Path
Algoritmo de Dijkstra
Bellman-Ford Algoritmo
10. StringMatching
NaïveString Matching
Knuth-Morris-Pratt Algoritmo
Boyer-Moore Algoritmo
11. Clasificación
Ordenamiento de burbuja
Tipo de inserción
SelectionSort
ShellSort
HeapSort
MergeSort
Ordenación rápida
12. Clasificación de tiempo lineal
CountingSort
RadixSort
BucketSort
13. Geometría computacional
14. Complejidad computacional
Argumento teórico-informativo
Adversario Argumento
NP-Completitud y reducción
15. Algoritmos aproximados
VertexCover
El problema del vendedor viajero
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
On-line Enciclopedia de secuencias enteras
Glosario (Diseño y Análisis de Algoritmos).
Libros de algoritmos y estructuras de datos
Libros de DonKnuth (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 mazetipos 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: Blackbox es un sistema de planificación que funciona mediante la conversión de problemas especificados en la notación STRIPS en problemas de satisfacción booleana y luego resuelve 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.