Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algoritmo
Algoritmo
1Definicin formal
2.1Diagrama de flujo
2.2Pseudocdigo
2.3Sistemas formales
2.4Implementacin
2.5Variables
2.6Estructuras secuenciales
4Anlisis de algoritmos
5Ejemplo de algoritmo
o
5.2Descripcin formal
5.3Implementacin
6Vase tambin
o
6.3Temas relacionados
6.4Disciplinas relacionadas
7Referencias
8Bibliografa
9Enlaces externos
Definicin formal[editar]
En general, no existe ningn consenso definitivo en cuanto a la definicin formal de
algoritmo. Muchos autores los sealan como listas de instrucciones para resolver
un clculoo un problema abstracto, es decir, que un nmero finito de pasos convierten los
datos de un problema (entrada) en una solucin (salida). 1 2 3 4 5 6 Sin embargo cabe notar
que algunos algoritmos no necesariamente tienen que terminar o resolver un problema en
particular. Por ejemplo, una versin modificada de la criba de Eratstenes que nunca
termine de calcular nmeros primos no deja de ser un algoritmo. 7
A lo largo de la historia varios autores han tratado de definir formalmente a los algoritmos
utilizando modelos matemticos. Esto fue realizado por Alonzo Church en 1936 con el
concepto de "calculabilidad efectiva" basada en su clculo lambda y por Alan
Turing basndose en la mquina de Turing. Los dos enfoques son equivalentes, en el
sentido en que se pueden resolver exactamente los mismos problemas con ambos
enfoques.8 9 Sin embargo, estos modelos estn sujetos a un tipo particular de datos como
son nmeros, smbolos o grficas mientras que, en general, los algoritmos funcionan sobre
una vasta cantidad de estructuras de datos.3 1 En general, la parte comn en todas las
definiciones se puede resumir en las siguientes tres propiedades siempre y cuando no
consideremos algoritmos paralelos:7
Tiempo secuencial. Un algoritmo funciona en tiempo discretizado paso a paso,
definiendo as una secuencia de estados computacionales por cada entrada vlida
(laentrada son los datos que se le suministran al algoritmo antes de comenzar).
Diagrama de flujo[editar]
Pseudocdigo[editar]
Artculo principal: Pseudocdigo
Sistemas formales[editar]
La teora de autmatas y la teora de funciones recursivas proveen
modelos matemticos que formalizan el concepto de algoritmo. Los
modelos ms comunes son la mquina de Turing, mquina de
registro y funciones -recursivas. Estos modelos son tan precisos como
un lenguaje mquina, careciendo de expresiones coloquiales o
ambigedad, sin embargo se mantienen independientes de cualquier
computadora y de cualquier implementacin.
Implementacin[editar]
Muchos algoritmos son ideados para implementarse en un programa. Sin
embargo, los algoritmos pueden ser implementados en otros medios,
como una red neuronal, un circuito elctrico o un aparato mecnico y
elctrico. Algunos algoritmos inclusive se disean especialmente para
implementarse usando lpiz y papel. El algoritmo de
multiplicacin tradicional, el algoritmo de Euclides, la criba de
Eratstenes y muchas formas de resolver la raz cuadrada son slo
algunos ejemplos.
Variables[editar]
Son elementos que toman valores especficos de un tipo de datos
concreto. La declaracin de una variable puede realizarse comenzando
con var. Principalmente, existen dos maneras de otorgar valores iniciales
a variables:
1. Mediante una sentencia de asignacin.
2. Mediante un procedimiento de entrada de datos (por ejemplo:
'read').
Ejemplo:
...
i:=1;
read(n);
while i < n do begin
(* cuerpo del bucle *)
i := i + 1
end;
...
Estructuras secuenciales[editar]
La estructura secuencial es aquella en la que una accin sigue a otra en
secuencia. Las operaciones se suceden de tal modo que la salida de una
es la entrada de la siguiente y as sucesivamente hasta el fin del proceso.
La asignacin de esto consiste, en el paso de valores o resultados a una
zona de la memoria. Dicha zona ser reconocida con el nombre de la
Anlisis de algoritmos[editar]
Artculo principal: Anlisis de algoritmos
Ejemplo de algoritmo[editar]
El problema consiste en encontrar el mximo de un conjunto de nmeros.
Para un ejemplo ms complejo vase Algoritmo de Euclides.
Descripcin formal[editar]
El algoritmo puede ser escrito de una manera ms formal en el
siguiente pseudocdigo:
Algoritmo Encontrar el mximo de un conjunto
funcin max()
// es un conjunto no vaco de nmeros//
// es el nmero de elementos de //
devolver
Sobre la notacin:
Implementacin[editar]
En lenguaje C++:
int max(int c[], int n)
{
int i, m = c[0];
for (i = 1; i < n; i++)
if (c[i] > m) m = c[i];
return m;