Professional Documents
Culture Documents
Ir a la navegaci�nIr a la b�squeda
�ndice
1 Definici�n
2 Medios de expresi�n de un algoritmo
2.1 Diagrama de flujo
2.2 Pseudoc�digo
2.3 Sistemas formales
2.4 Implementaci�n
2.5 Variables
2.6 Estructuras secuenciales
3 Algoritmos como funciones
4 An�lisis de algoritmos
5 Ejemplo de algoritmo
5.1 Descripci�n de alto nivel
5.2 Descripci�n formal
5.3 Implementaci�n
6 V�ase tambi�n
6.1 Tipos de algoritmos seg�n su funci�n
6.2 T�cnicas de dise�o de algoritmos
6.3 Temas relacionados
6.4 Disciplinas relacionadas
7 Referencias
8 Bibliograf�a
9 Enlaces externos
Definici�n
En general, no existe ning�n consenso definitivo en cuanto a la definici�n formal
de algoritmo. Muchos autores los se�alan como listas de instrucciones para resolver
un c�lculo o un problema abstracto, es decir, que un n�mero finito de pasos
convierten los datos de un problema (entrada) en una soluci�n (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 versi�n modificada de la
criba de Erat�stenes que nunca termine de calcular n�meros primos no deja de ser un
algoritmo.7?
Diagrama de flujo
Los diagramas de flujo son usados para representar algoritmos peque�os, ya que
abarcan mucho espacio y su construcci�n es laboriosa. Por su facilidad de lectura
son usados como introducci�n a los algoritmos, descripci�n de un lenguaje y
descripci�n de procesos a personas ajenas a la computaci�n.
Pseudoc�digo
Art�culo principal: Pseudoc�digo
El pseudoc�digo (falso lenguaje, el prefijo pseudo significa falso) es una
descripci�n de alto nivel de un algoritmo que emplea una mezcla de lenguaje natural
con algunas convenciones sint�cticas propias de lenguajes de programaci�n, como
asignaciones, ciclos y condicionales, aunque no est� regido por ning�n est�ndar. Es
utilizado para describir algoritmos en libros y publicaciones cient�ficas, y como
producto intermedio durante el desarrollo de un algoritmo, como los diagramas de
flujo, aunque presentan una ventaja importante sobre estos, y es que los algoritmos
descritos en pseudoc�digo requieren menos espacio para representar instrucciones
complejas.
As� el pseudoc�digo cumple con las funciones antes mencionadas para representar
algo abstracto los protocolos son los lenguajes para la programaci�n. Busque
fuentes m�s precisas para tener mayor comprensi�n del tema.
Sistemas formales
La teor�a de aut�matas y la teor�a de funciones recursivas proveen modelos
matem�ticos que formalizan el concepto de algoritmo. Los modelos m�s comunes son la
m�quina de Turing, m�quina de registro y funciones �-recursivas. Estos modelos son
tan precisos como un lenguaje m�quina, careciendo de expresiones coloquiales o
ambig�edad, sin embargo se mantienen independientes de cualquier computadora y de
cualquier implementaci�n.
Implementaci�n
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 el�ctrico o un aparato mec�nico y el�ctrico. Algunos algoritmos inclusive
se dise�an especialmente para implementarse usando l�piz y papel. El algoritmo de
multiplicaci�n tradicional, el algoritmo de Euclides, la criba de Erat�stenes y
muchas formas de resolver la ra�z cuadrada son solo algunos ejemplos.
Variables
Son elementos que toman valores espec�ficos de un tipo de datos concreto. La
declaraci�n de una variable puede realizarse comenzando con var. Principalmente,
existen dos maneras de otorgar valores iniciales a variables:
Ejemplo:
...
i:=1;
read(n);
while i < n do begin
(* cuerpo del bucle *)
i := i + 1
end;
...
Estructuras secuenciales
La estructura secuencial es aquella en la que una acci�n 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 asignaci�n 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 variable que recibe el valor. La asignaci�n se
puede clasificar de la siguiente forma:
Inicio
...
float b, h, a;
printf("Diga la base");
scanf("%f", &b);
printf("Diga la altura");
scanf("%f", &h);
a = (b*h)/2;
printf("El �rea del tri�ngulo es %f", a)
...
Fin
Algoritmos como funciones
Art�culo principal: Teor�a de la computabilidad
En ocasiones los algoritmos son susceptibles de nunca terminar, por ejemplo, cuando
entran a un bucle infinito. Cuando esto ocurre, el algoritmo nunca devuelve ning�n
valor de salida, y podemos decir que la funci�n queda indefinida para ese valor de
entrada. Por esta raz�n se considera que los algoritmos son funciones parciales, es
decir, no necesariamente definidas en todo su dominio de definici�n.
Cuando una funci�n puede ser calculada por medios algor�tmicos, sin importar la
cantidad de memoria que ocupe o el tiempo que se tarde, se dice que dicha funci�n
es computable. No todas las funciones entre secuencias datos son computables. El
problema de la parada es un ejemplo.
An�lisis de algoritmos
Art�culo principal: An�lisis de algoritmos
Como medida de la eficiencia de un algoritmo, se suelen estudiar los recursos
(memoria y tiempo) que consume el algoritmo. El an�lisis de algoritmos se ha
desarrollado para obtener valores que de alguna forma indiquen (o especifiquen) la
evoluci�n del gasto de tiempo y memoria en funci�n del tama�o de los valores de
entrada.
Ejemplo de algoritmo
El problema consiste en encontrar el m�ximo de un conjunto de n�meros. Para un
ejemplo m�s complejo v�ase Algoritmo de Euclides.
Descripci�n formal
El algoritmo puede ser escrito de una manera m�s formal en el siguiente
pseudoc�digo: