You are on page 1of 8

Repblica Bolivariana de Venezuela

Ministerio del Poder Popular Para la Educacin


U. E. P. Gral. Joaqun Crespo
Maracaibo Edo. Zulia
Ctedra: Informtica

Realizado por:
Eudys Villalobos
Grado: 8vo U

Maracaibo, noviembre de 2014.

1. Algoritmo
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. 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.
2. Caractersticas de los algoritmos
Las caractersticas fundamentales que debe cumplir todo algoritmo son:

Un algoritmo debe ser preciso e indicar el orden de realizacin de cada paso.


Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe
obtener el mismo resultado cada vez.
Un algoritmo debe ser finito. el algoritmo se debe terminar en algn momento; o
sea, debe tener un nmero finito de pasos.
Un algoritmo debe ser legibles: El texto que lo describe debe ser claro, tal que
permita entenderlo y leerlo fcilmente.

3. 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.
4. 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.
5. Pseudocdigo
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.
6. 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.
7. Implementacin
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.
8. 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').
9. 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.
10. Tipos de algoritmos segn su funcin

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.
Desde los comienzos de la computacin, el problema del ordenamiento ha atrado
gran cantidad de investigacin, tal vez debido a la complejidad de resolverlo
eficientemente a pesar de su planteamiento simple y familiar. Por
ejemplo, BubbleSort fue analizado desde 1956.1 Aunque muchos puedan considerarlo un
problema resuelto, nuevos y tiles algoritmos de ordenamiento se siguen inventado hasta
el da de hoy (por ejemplo, el ordenamiento de biblioteca se public por primera vez en el
2004). Los algoritmos de ordenamiento son comunes en las clases introductorias a la
computacin, donde la abundancia de algoritmos para el problema proporciona una gentil
introduccin a la variedad de conceptos ncleo de los algoritmos, como notacin de O
mayscula, algoritmos divide y vencers, estructuras de datos, anlisis de los casos peor,
mejor, y promedio, y lmites inferiores.

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.

11. 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.