Varios
Todo algoritmo debe cumplir las 5 condiciones siguientes:
-Debe ser finito. Un algoritmo debe acabar siempre tras un número finito de pasos.
-Debe ser definible. Cada paso del algoritmodebe quedar definido de un modo preciso y sin ambigüedades.
- Recibe datos de entrada. Es normal que el algoritmo reciba datos desde el exterior, que luego utiliza y trata.
-Proporciona resultados de salida. Un algoritmo produce uno o varios resultados en su ejecución que envía al exterior como valor de salida.
-Debe ser efectivo, es decir, que resuelva el problema de forma rápida y eficiente.Tipos de algoritmos según su función
Algoritmo de ordenamiento: En computación y matemáticas un algoritmo de ordenamiento es un algoritmo que pone elementos de una lista o un vector en una secuencia dada por una relación de orden, es decir, el resultado de salida ha de ser una permutación o reordenamiento de la entrada que satisfaga la relación de orden dada. Las relaciones de orden más usadasson el orden numérico y el orden lexicográfico. Ordenamientos eficientes son importantes para optimizar el uso de otros algoritmos (como los de búsqueda y fusión) que requieren listas ordenadas para una ejecución rápida. También es útil para poner datos en forma canónica y para generar resultados legibles por humanos.
Los algoritmos de ordenamiento se pueden clasificar de las siguientes maneras:* La más común es clasificar según el lugar donde se realice la ordenación
* Algoritmos de ordenamiento interno: en la memoria del ordenador.
* Algoritmos de ordenamiento externo: en un lugar externo como un disco duro.
* Por el tiempo que tardan en realizar la ordenación, dadas entradas ya ordenadas o inversamente ordenadas:
* Algoritmos de ordenación natural: Tardalo mínimo posible cuando la entrada está ordenada.
* Algoritmos de ordenación no natural: Tarda lo mínimo posible cuando la entrada está inversamente ordenada.
Algoritmo de búsqueda: Un algoritmo de búsqueda es aquel que está diseñado para localizar un elemento concreto dentro de una estructura de datos. Consiste en solucionar un problema de existencia o no de un elemento determinado en unconjunto finito de elementos, es decir, si el elemento en cuestión pertenece o no a dicho conjunto, además de su localización dentro de éste.
Técnicas de diseño de algoritmos
* Algoritmos voraces : seleccionan los elementos más prometedores del conjunto de candidatos hasta encontrar una solución. En la mayoría de los casos la solución no es óptima.
* Algoritmos paralelos: permiten ladivisión de un problema en sub-problemas de forma que se puedan ejecutar de forma simultánea en varios procesadores.
* Algoritmos probabilísticos: algunos de los pasos de este tipo de algoritmos están en función de valores pseudoaleatorios.
* Algoritmos determinísticos: el comportamiento del algoritmo es lineal: cada paso del algoritmo tiene únicamente un paso sucesor y otro antecesor.
*Algoritmos no determinísticos: el comportamiento del algoritmo tiene forma de árbol y a cada paso del algoritmo puede bifurcarse a cualquier número de pasos inmediatamente posteriores, además todas las ramas se ejecutan simultáneamente.
* Divide y vencerás: dividen el problema en subconjuntos disjuntos obteniendo una solución de cada uno de ellos para después unirlas, logrando así la soluciónal problema completo.
* Metaheurísticas: encuentran soluciones aproximadas (no óptimas) a problemas basándose en un conocimiento anterior (a veces llamado experiencia) de los mismos.
* Programación dinámica: intenta resolver problemas disminuyendo su coste computacional aumentando el coste espacial.
* Ramificación y acotación: se basa en la construcción de las soluciones al problema...
Regístrate para leer el documento completo.