Sie sind auf Seite 1von 16

DEFINICION, TIPOS Y EJEMPLOS DE ALGORITMOS

POR: GISSELA SNCHEZ



ALGORITMO


Los diagramas de flujo sirven para representar algoritmos de manera grfica.
En matemticas, lgica, ciencias de la computacin y disciplinas relacionadas, un algoritmo
(del griego y latn, dixit algorithmus y este a su vez del matemtico persa Al-Juarismi1 ) es un
conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite
realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar
dicha actividad.2 Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se
llega a un estado final y se obtiene una solucin. Los algoritmos son el objeto de estudio de la
algoritmia.
En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos
ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las
instrucciones que recibe un trabajador por parte de su patrn. Algunos ejemplos en
matemtica son el algoritmo de multiplicacin, para calcular el producto, el algoritmo de la
divisin para calcular el cociente de dos nmeros, el algoritmo de Euclides para obtener el
mximo comn divisor de dos enteros positivos, o el mtodo de Gauss para resolver un
sistema lineal de ecuaciones.
DEFINICION, TIPOS Y EJEMPLOS DE ALGORITMOS
POR: GISSELA SNCHEZ
Definicin formal
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 clculo o 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 fun1ciona en tiempo discreteada paso a paso, definiendo
as una secuencia de estados "computacionales" por cada entrada vlida (la entrada son los
datos que se le suministran al algoritmo antes de comenzar).
Estado abstracto. Cada estado computacional puede ser descrito formalmente utilizando una
estructura de primer orden y cada algoritmo es independiente de su implementacin (los
algoritmos son objetos abstractos) de manera que en un algoritmo las estructuras de primer
orden son invariantes bajo isomorfismo.
Exploracin acotada. La transicin de un estado al siguiente queda completamente
determinada por una descripcin fija y finita; es decir, entre cada estado y el siguiente
solamente se puede tomar en cuenta una cantidad fija y limitada de trminos del estado
actual.
DEFINICION, TIPOS Y EJEMPLOS DE ALGORITMOS
POR: GISSELA SNCHEZ
En resumen, un algoritmo es cualquier cosa que funcione paso a paso, donde cada paso se
pueda describir sin ambigedad y sin hacer referencia a una computadora en particular, y
adems tiene un lmite fijo en cuanto a la cantidad de datos que se pueden leer/escribir en un
solo paso. Esta amplia definicin abarca tanto a algoritmos prcticos como aquellos que solo
funcionan en teora, por ejemplo el mtodo de Newton y la eliminacin de Gauss-Jordan
funcionan, al menos en principio, con nmeros de precisin infinita; sin embargo no es posible
programar la precisin infinita en una computadora, y no por ello dejan de ser algoritmos.10
En particular es posible considerar una cuarta propiedad que puede ser usada para validar la
tesis de Church-Turing de que toda funcin calculable se puede programar en una mquina
de Turing (o equivalentemente, en un lenguaje de programacin suficientemente general)
Aritmetizabilidad. Solamente operaciones innegablemente calculables estn disponibles en el
paso inicial.
Medios de expresin de un algoritmo.
Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural,
pseudocdigo, diagramas de flujo y lenguajes de programacin entre otros. Las descripciones
en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocdigo y diagramas de
flujo evita muchas ambigedades del lenguaje natural. Dichas expresiones son formas ms
estructuradas para representar algoritmos; no obstante, se mantienen independientes de un
lenguaje de programacin especfico.
La descripcin de un algoritmo usualmente se hace en tres niveles:
Descripcin de alto nivel. Se establece el problema, se selecciona un modelo matemtico y se
explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.
Descripcin formal. Se usa pseudocdigo para describir la secuencia de pasos que
encuentran la solucin.
Implementacin. Se muestra el algoritmo expresado en un lenguaje de programacin
especfico o algn objeto capaz de llevar a cabo instrucciones.
DEFINICION, TIPOS Y EJEMPLOS DE ALGORITMOS
POR: GISSELA SNCHEZ
Tambin es posible incluir un teorema que demuestre que el algoritmo es correcto, un anlisis
de complejidad o ambos.
Diagrama de flujo
Diagrama de flujo que expresa un algoritmo para calcular la raz cuadrada de un nmero x
Artculo principal: Diagrama de flujo
Los diagramas de flujo son descripciones grficas de algoritmos; usan smbolos conectados
con flechas para indicar la secuencia de instrucciones y estn regidos por ISO.
Los diagramas de flujo son usados para representar algoritmos pequeos, ya que abarcan
mucho espacio y su construccin es laboriosa. Por su facilidad de lectura son usados como
introduccin a los algoritmos, descripcin de un lenguaje y descripcin de procesos a
personas ajenas a la computacin.
Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural,
pseudocdigo, diagramas de flujo y lenguajes de programacin entre otros. Las descripciones
en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocdigo y diagramas de
flujo evita muchas ambigedades del lenguaje natural. Dichas expresiones son formas ms
estructuradas para representar algoritmos; no obstante, se mantienen independientes de un
lenguaje de programacin especfico.
Pseudocdigo
DEFINICION, TIPOS Y EJEMPLOS DE ALGORITMOS
POR: GISSELA SNCHEZ

El pseudocdigo (falso lenguaje, el prefijo pseudo significa falso) es una descripcin de alto
nivel de un algoritmo que emplea una mezcla de lenguaje natural con algunas convenciones
sintcticas propias de lenguajes de programacin, como asignaciones, ciclos y condicionales,
aunque no est regido por ningn estndar. Es utilizado para describir algoritmos en libros y
publicaciones cientficas, 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 pseudocdigo requieren menos espacio para representar
instrucciones complejas.
El pseudocdigo est pensado para facilitar a las personas el entendimiento de un algoritmo,
y por lo tanto puede omitir detalles irrelevantes que son necesarios en una implementacin.
Programadores diferentes suelen utilizar convenciones distintas, que pueden estar basadas
en la sintaxis de lenguajes de programacin concretos. Sin embargo, el pseudocdigo, en
general, es comprensible sin necesidad de conocer o utilizar un entorno de programacin
especfico, y es a la vez suficientemente estructurado para que su implementacin se pueda
hacer directamente a partir de l.
As el pseudodocdigo cumple con las funciones antes mencionadas para representar algo
abstracto los protocolos son los lenguajes para la programacin. Busque fuentes ms precisas
para tener mayor comprensin del tema.
DEFINICION, TIPOS Y EJEMPLOS DE ALGORITMOS
POR: GISSELA SNCHEZ
Sistemas formales

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
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:
Mediante una sentencia de asignacin.
Mediante un procedimiento de entrada de datos (por ejemplo: 'read').

Ejemplo:
DEFINICION, TIPOS Y EJEMPLOS DE ALGORITMOS
POR: GISSELA SNCHEZ
...
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 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
variable que recibe el valor. La asignacin se puede clasificar de la siguiente forma:
Simples: Consiste en pasar un valor constante a una variable (a 15)
DEFINICION, TIPOS Y EJEMPLOS DE ALGORITMOS
POR: GISSELA SNCHEZ
Contador: Consiste en usarla como un verificador del nmero de veces que se realiza un
proceso (a a + 1)
Acumulador: Consiste en usarla como un sumador en un proceso (a a + b)
De trabajo: Donde puede recibir el resultado de una operacin matemtica que involucre
muchas variables (a c + b*2/4).
Un ejemplo de estructura secuencial, como obtener el rea de un tringulo:
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 tringulo es %f", a)
...
Fin
Algoritmos como funciones
Esquemtica de un algoritmo solucionando un problema de ciclo ha miltoniano.
Un algoritmo se puede concebir como una funcin que transforma los datos de un problema
(entrada) en los datos de una solucin (salida). Ms aun, los datos se pueden representar a
su vez como secuencias de bits, y en general, de smbolos cualesquiera.1 9 11 Como cada
secuencia de bits representa a un nmero natural (vase Sistema binario), entonces los
algoritmos son en esencia funciones de los nmeros naturales en los nmeros naturales que
DEFINICION, TIPOS Y EJEMPLOS DE ALGORITMOS
POR: GISSELA SNCHEZ
s se pueden calcular. Es decir que todo algoritmo calcula una funcin f:\mathbf N\to \mathbf N
donde cada nmero natural es la codificacin de un problema o de una solucin.
En ocasiones los algoritmos son susceptibles de nunca terminar, por ejemplo, cuando entran
a un bucle infinito. Cuando esto ocurre, el algoritmo nunca devuelve ningn valor de salida, y
podemos decir que la funcin queda indefinida para ese valor de entrada. Por esta razn se
considera que los algoritmos son funciones parciales, es decir, no necesariamente definidas
en todo su dominio de definicin.
Cuando una funcin puede ser calculada por medios algortmicos, sin importar la cantidad de
memoria que ocupe o el tiempo que se tarde, se dice que dicha funcin es computable. No
todas las funciones entre secuencias datos son computables. El problema de la parada es un
ejemplo.

Anlisis de algoritmos
Como medida de la eficiencia de un algoritmo, se suelen estudiar los recursos (memoria y
tiempo) que consume el algoritmo. El anlisis de algoritmos se ha desarrollado para obtener
valores que de alguna forma indiquen (o especifiquen) la evolucin del gasto de tiempo y
memoria en funcin del tamao de los valores de entrada.
El anlisis y estudio de los algoritmos es una disciplina de las ciencias de la computacin y, en
la mayora de los casos, su estudio es completamente abstracto sin usar ningn tipo de
lenguaje de programacin ni cualquier otra implementacin; por eso, en ese sentido, comparte
las caractersticas de las disciplinas matemticas. As, el anlisis de los algoritmos se centra
en los principios bsicos del algoritmo, no en los de la implementacin particular. Una forma
de plasmar (o algunas veces "codificar") un algoritmo es escribirlo en pseudocdigo o utilizar
un lenguaje muy simple tal como Lxico, cuyos cdigos pueden estar en el idioma del
programador.
Algunos escritores restringen la definicin de algoritmo a procedimientos que deben acabar en
algn momento, mientras que otros consideran procedimientos que podran ejecutarse
eternamente sin pararse, suponiendo el caso en el que existiera algn dispositivo fsico que
DEFINICION, TIPOS Y EJEMPLOS DE ALGORITMOS
POR: GISSELA SNCHEZ
fuera capaz de funcionar eternamente. En este ltimo caso, la finalizacin con xito del
algoritmo no se podra definir como la terminacin de este con una salida satisfactoria, sino
que el xito estara definido en funcin de las secuencias de salidas dadas durante un periodo
de vida de la ejecucin del algoritmo. Por ejemplo, un algoritmo que verifica que hay ms
ceros que unos en una secuencia binaria infinita debe ejecutarse siempre para que pueda
devolver un valor til. Si se implementa correctamente, el valor devuelto por el algoritmo ser
vlido, hasta que evale el siguiente dgito binario. De esta forma, mientras evala la siguiente
secuencia podrn leerse dos tipos de seales: una seal positiva (en el caso de que el
nmero de ceros sea mayor que el de unos) y una negativa en caso contrario. Finalmente, la
salida de este algoritmo se define como la devolucin de valores exclusivamente positivos si
hay ms ceros que unos en la secuencia y, en cualquier otro caso, devolver una mezcla de
seales positivas y negativas.
Ejemplo de algoritmo
El problema consiste en encontrar el mximo de un conjunto de nmeros. Descripcin de alto
nivel
Dado un conjunto finito C de nmeros, se tiene el problema de encontrar el nmero ms
grande. Sin prdida de generalidad se puede asumir que dicho conjunto no es vaco y que sus
elementos estn numerados como c_0,c_1,\dots,c_n.
Es decir, dado un conjunto C=\{c_0,c_1,\dots,c_n\} se pide encontrar m tal que x\leq m para
todo elemento x que pertenece al conjunto C.
Para encontrar el elemento mximo, se asume que el primer elemento (c_0) es el mximo;
luego, se recorre el conjunto y se compara cada valor con el valor del mximo nmero
encontrado hasta ese momento. En el caso que un elemento sea mayor que el mximo, se
asigna su valor al mximo. Cuando se termina de recorrer la lista, el mximo nmero que se
ha encontrado es el mximo de todo el conjunto.
Descripcin formal
El algoritmo puede ser escrito de una manera ms formal en el siguiente pseudocdigo:
DEFINICION, TIPOS Y EJEMPLOS DE ALGORITMOS
POR: GISSELA SNCHEZ
Algoritmo Encontrar el mximo de un conjunto
funcin max(C)
//C es un conjunto no vaco de nmeros//
n |C| //|C| es el nmero de elementos de C//
m c_0
para i 1 hasta n hacer
si c_i > m entonces
m c_i
devolver m
Sobre la notacin:
"" representa una asignacin: m x significa que la variable m toma el valor de x;
"devolver" termina el algoritmo y devuelve el valor a su derecha (en este caso, el mximo de
C).
TIPOS DE ALGORITMOS
Cualitativos.
Son aquellos en los que se describen los pasos utilizando palabras.
Son todos aquellos pasos o instrucciones descritos por medio de palabras que sirven para
llegar a la obtencin de una respuesta o solucin de un problema cualquier
Cuantitativos: Son aquellos en los que se utilizan clculos numricos para definir los pasos del
proceso.
Son aquellos pasos o instrucciones que involucran clculos numricos para llegar a un
resultado satisfactorio
DEFINICION, TIPOS Y EJEMPLOS DE ALGORITMOS
POR: GISSELA SNCHEZ
Tipos de algoritmos de razonamiento:
Algoritmos Estticos: son los que funcionan siempre igual, independientemente del tipo de
problema tratado.
Algoritmos Adaptativos: algoritmos con cierta capacidad de aprendizaje.
Algoritmos Probabilsticos: son algoritmos que no utilizan valores de verdad booleanos sino
continuos. Existen varios tipos de algoritmos probabilsticos dependiendo de su
funcionamiento, pudindose distinguir:
Algoritmos numricos: que proporcionan una solucin aproximada del problema.
Algoritmos de Montecarlo: que pueden dar la respuesta correcta o respuesta errneas
Algoritmos de Las Vegas: que nunca dan una respuesta incorrecta: o bien dan la respuesta
correcta o informan del fallo.
Algoritmo Cotidiano: es la serie de pasos que realizamos en nuestra vida diaria para realizar
las diferentes tareas y actividades comunes, desde los pasos al levantarnos, as como ir de
compras, etc.

Algoritmo Voraz: un algoritmo voraz es aquel que, para resolver un determinado problema,
sigue una meta heurstica consistente en elegir la opcin ptima en cada paso local con la
esperanza de llegar a una solucin general ptima.
Algoritmo Determinista: es un algoritmo que, en trminos informales, es completamente
predictivo si se conocen sus entradas.
Algoritmo Heurstico: es un algoritmo que abandona uno o ambos objetivos; por ejemplo,
normalmente encuentran buenas soluciones, aunque no hay pruebas de que la solucin no
pueda ser arbitrariamente errnea en algunos casos; o se ejecuta razonablemente rpido,
aunque no existe tampoco prueba de que siempre ser as.

DEFINICION, TIPOS Y EJEMPLOS DE ALGORITMOS
POR: GISSELA SNCHEZ
Las heursticas generalmente son usadas cuando no existe una solucin ptima bajo las
restricciones dadas (tiempo, espacio, etc.), o cuando no existe del todo.

Algoritmo de escalada: la idea bsica consiste en comenzar con una mala solucin a un
determinado problema y, repetidamente, aplicar optimizaciones a la misma hasta que esta sea
ptima o satisfaga algn otro requisito.
Ciencias en que se apoya la algoritmia para producir soluciones ingeniosas!
Ciencias de la Computacin.
Matemticas.
Ciencias Sociales.
Ciencias Polticas.
Cmo podemos determinar la complejidad de un algoritmo?
No existe receta que siempre funcione para calcular la complejidad de un algoritmo, si es
posible tratar sistemticamente una gran cantidad de ellos, basndonos en que suelen estar
bien estructurados y siguen pautas uniformes.
Loa algoritmos bien estructurados combinan las sentencias de alguna de las siguientes
formas:
Sentencias sencillas
Secuencia (;)
Decisin (if)
Bucles
Llamadas a procedimiento.
CUALITATIVOS: Son aquellos en los que se describen los pasos utilizando palabras.

DEFINICION, TIPOS Y EJEMPLOS DE ALGORITMOS
POR: GISSELA SNCHEZ
CUANTITATIVOS: Son aquellos en los que se utilizan clculos numricos para definir los
pasos del proceso.


ALGORITMO COTIDIANO: Es la serie de pasos que realizamos en nuestra vida diaria para
realizar las diferentes tareas y actividades comunes, desde los pasos al levantarnos, as como
ir de compras, etc.

EJEMPLO

ALGORITMO CUALITATIVO

Como hacer una llamada telefnica. Condicin: De un telfono publico. El algoritmo finaliza
cuando se realice la llamada.

Inicio

Buscar el nmero
Encontr el numero?: SI: Ir paso 4
NO: ir paso 2
Ubicar el telfono
Hay telfono?: Si ir pas 6
NO: ir paso 4
Levantar el auricular.
Este bueno los telfonos: Ir pas 10?
No ir paso 8
Esperar que levanten la bocina del telfono
Tomaron el telfono?: Si: Ir al paso 12
No: Ir paso 15
DEFINICION, TIPOS Y EJEMPLOS DE ALGORITMOS
POR: GISSELA SNCHEZ
Preguntar por la persona con quien desea hablar.
Esta la persona? : Si: Ir paso 14
NO: Ir paso 15
Hablar con la persona
Fin.
ALGORITMOS CUANTITATIVOS
Los algoritmos cuantitativos son aquellos en los que se utilizan clculos numricos para definir
los pasos del proceso.
Ejemplo 1:
Suma de dos nmeros
a=3
b=4
c=a+b
Imprimir(c)
El resultado de nuestro programa sera:
7
Ejemplo 2:
Se quiere calcular el rea de un rectngulo, se tiene en cuenta la forma que es (A x B) en la
cual a y b son dos de los lados.
Se solicita la longitud del lado A.
A=8
Se solicita la longitud del lado B.
DEFINICION, TIPOS Y EJEMPLOS DE ALGORITMOS
POR: GISSELA SNCHEZ
B=13
Luego se multiplica el lado A con el lado B y el resultado es el rea del rectngulo.
C= AXB
C=104

RECUERDE
1. Determine el problema que se desea resolver.
2. Determine las variables que se van a utilizar en la resolucin del problema.
3. Pedir al usuario digitar la informacin de las variables.
4. El algoritmo dar al final el resultado la solucin del problema.

Das könnte Ihnen auch gefallen