You are on page 1of 6

Algoritmo

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-
Juarismi
1
) 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.
1

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:
1. 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.
2. Descripcin formal. Se usa pseudocdigo para describir la secuencia de pasos
que encuentran la solucin.
3. Implementacin. Se muestra el algoritmo expresado en un lenguaje de
programacin especfico o algn objeto capaz de llevar a cabo instrucciones.
Tambin es posible incluir un teorema que demuestre que el algoritmo es correcto, un
anlisis de complejidad o ambos.
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.



TIPOS DE ALGORITMO
Algoritmo de ordenamiento
En computacin y matemticas un algoritmo de ordenamiento es un algoritmo que
pone elementos de una lista o un vector en una secuencia dada por una relacin de
orden, es decir, el resultado de salida ha de ser una permutacin o
reordenamiento de la entrada que satisfaga la relacin de orden dada. Las
relaciones de orden ms usadas son el orden numrico y el orden lexicogrfico.
Ordenamientos eficientes son importantes para optimizar el uso de otros algoritmos
(como los de bsqueda y fusin) que requieren listas ordenadas para una ejecucin
rpida. Tambin es til para poner datos en forma cannica y para generar resultados
legibles por humanos.
Algoritmo de bsqueda
Un algoritmo de bsqueda es aquel que est diseado para localizar un elemento con
ciertas propiedades dentro de una estructura de datos; por ejemplo, ubicar el registro
correspondiente a cierta persona en una base de datos, o el mejor movimiento en una
partida de ajedrez.
La variante ms simple del problema es la bsqueda de un nmero en un vector.
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.

Tcnicas de diseo de algoritmos
Algoritmos voraces (greedy): seleccionan los elementos ms prometedores del
conjunto de candidatos hasta encontrar una solucin. En la mayora de los
casos la solucin no es ptima.
Algoritmos paralelos: permiten la divisin de un problema en subproblemas de
forma que se puedan ejecutar de forma simultnea en varios procesadores.
Algoritmos probabilsticos: algunos de los pasos de este tipo de algoritmos
estn en funcin de valores pseudoaleatorios.
Algoritmos determinsticos: el comportamiento del algoritmo es lineal: cada
paso del algoritmo tiene nicamente un paso sucesor y otro antecesor.
Algoritmos no determinsticos: el comportamiento del algoritmo tiene forma
de rbol y a cada paso del algoritmo puede bifurcarse a cualquier nmero de
pasos inmediatamente posteriores, adems todas las ramas se ejecutan
simultneamente.
Divide y vencers: dividen el problema en subconjuntos disjuntos obteniendo
una solucin de cada uno de ellos para despus unirlas, logrando as la solucin
al problema completo.
Metaheursticas: encuentran soluciones aproximadas (no ptimas) a
problemas basndose en un conocimiento anterior (a veces llamado
experiencia) de los mismos.
Programacin dinmica: intenta resolver problemas disminuyendo su coste
computacional aumentando el coste espacial.
Ramificacin y acotacin: se basa en la construccin de las soluciones al
problema mediante un rbol implcito que se recorre de forma controlada
encontrando las mejores soluciones.
Vuelta atrs (backtracking): se construye el espacio de soluciones del problema
en un rbol que se examina completamente, almacenando las soluciones menos
costosas.













Diagrama de flujo


Diagrama de flujo que expresa un algoritmo para calcular la raz cuadrada de un
nmero
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.
El diagrama de flujo o diagrama de actividades es la representacin grfica del
algoritmo o proceso. Se utiliza en disciplinas como programacin, economa, procesos
industriales y psicologa cognitiva.
En Lenguaje Unificado de Modelado (UML), un diagrama de actividades representa los
flujos de trabajo paso a paso de negocio y operacionales de los componentes en un
sistema. Un diagrama de actividades muestra el flujo de control general.
En SysML el diagrama de actividades ha sido extendido para indicar flujos entre pasos
que mueven elementos fsicos (e.g., gasolina) o energa (e.g., presin). Los cambios
adicionales permiten al diagrama soportar mejor flujos de comportamiento y datos
continuos.
Estos diagramas utilizan smbolos con significados definidos que representan los
pasos del algoritmo, y representan el flujo de ejecucin mediante flechas que conectan
los puntos de inicio y de fin de proceso.
Caractersticas
Un diagrama de flujo siempre tiene un nico punto de inicio y un nico punto de
trmino.
Las siguientes son acciones previas a la realizacin del diagrama de flujo:
Identificar las ideas principales al ser incluidas en el diagrama de flujo. Deben estar
presentes el autor o responsable del proceso, los autores o responsables del proceso
anterior y posterior y de otros procesos interrelacionados, as como las terceras
partes interesadas.
Definir qu se espera obtener del diagrama de flujo.
Identificar quin lo emplear y cmo.
Establecer el nivel de detalle requerido.
Determinar los lmites del proceso a describir.
Los pasos a seguir para construir el diagrama de flujo son:
Establecer el alcance del proceso a describir. De esta manera quedar fijado el
comienzo y el final del diagrama. Frecuentemente el comienzo es la salida del proceso
previo y el final la entrada al proceso siguiente.
Identificar y listar las principales actividades/subprocesos que estn incluidos en el
proceso a describir y su orden cronolgico.
Si el nivel de detalle definido incluye actividades menores, listarlas tambin.
Identificar y listar los puntos de decisin.
Construir el diagrama respetando la secuencia cronolgica y asignando los
correspondientes smbolos.
Asignar un ttulo al diagrama y verificar que est completo y describa con exactitud el
proceso elegido.
si pusieras ms atencin en clases, no estaras consultando que es un diagrama de
flujo, as que pon ms atencin en clases y evita andar consultando cosas...
Tipos de diagramas de flujo
Formato vertical: En l, el flujo y la secuencia de las operaciones, va de arriba hacia
abajo. Es una lista ordenada de las operaciones de un proceso con toda la informacin
que se considere necesaria, segn su propsito.
Formato horizontal: En l, el flujo o la secuencia de las operaciones, va de izquierda a
derecha.
Formato panormico: El proceso entero est representado en una sola carta y puede
apreciarse de una sola mirada mucho ms rpido que leyendo el texto, lo que facilita
su comprensin, aun para personas no familiarizadas. Registra no solo en lnea
vertical, sino tambin horizontal, distintas acciones simultneas y la participacin de
ms de un puesto o departamento que el formato vertical no registra.
Formato Arquitectnico: Describe el itinerario de ruta de una forma o persona sobre
el plano arquitectnico del rea de trabajo. El primero de los flujogramas es
eminentemente descriptivo, mientras que los utilizados son fundamentalmente
representativos.

You might also like