Вы находитесь на странице: 1из 4

INSTITUTO TECNOLGICO DE CERRO

AZUL

ANLISIS DE ALGORITMOS

ING. EN SISTEMAS COMPUTACIONALES

ESTRUCTURA DE DATOS

LIC. MARA TERESA COBOS PONCE

ALUMNO:
SIERRA GONZLEZ FRANCISCO

Cerro Azul, Ver. 29 de


agosto de 2016
ANLISIS DE ALGORITMOS

Un algoritmo es una secuencia de pasos lgica y semntica para encontrar la


solucin de un problema.

Todo algoritmo debe contar con las siguientes caractersticas: preciso, definido y
finito. Por Preciso, entenderemos que cada paso del algoritmo tiene una relacin
con el anterior y el siguiente; un algoritmo es Definido, cuando se ejecuta ms de
una vez con los mismos datos y el resultado es el mismo; y Finito, indica que el
algoritmo cuenta con una serie de pasos definidos o que tiene un fin.

Hablando de estructuras de datos podemos decir que los algoritmos segn su


funcin se dividen en:

Algoritmos de ordenamiento y
Algoritmos de bsqueda.

Un algoritmo de ordenamiento, es el que pone los elementos de una lista o vector


en una secuencia (ascendente o descendente) diferente a la entrada, es decir, el
resultado de salida debe ser una permutacin (reordenamiento) de la entrada que
satisfaga la relacin de orden requerida.

Un algoritmo de bsqueda, es aquel que est diseado para encontrar la solucin


de un problema booleano de existencia o no de un elemento en particular dentro
de un conjunto finito de elementos (estructura de datos), es decir al finalizar el
algoritmo este debe decir si el elemento en cuestin existe o no en ese conjunto,
adems, en caso de existir, el algoritmo podra proporcionar la localizacin del
elemento dentro del conjunto.

Analizamos los algoritmos con la intencin de mejorarlos, si es posible, y de


escoger uno de entre varios con los que se podra resolver un problema.
Usaremos los criterios siguientes:

1. Correccin
2. Cantidad de trabajo realizado
3. Cantidad de espacio usado
4. Sencillez, claridad
5. Optimidad
Correccin

Primero, antes de siquiera intentar determinar si un algoritmo es correcto o no,


debemos entender claramente qu significa correcto.
Necesitamos un planteamiento preciso de las caractersticas de las entradas con
las que se espera que trabaje (llamadas condiciones previas) y del resultado que
se espera que produzca con cada entrada (las condiciones posteriores). Entonces,
si se satisfacen las condiciones previas, las condiciones posteriores se cumplirn
cuando el algoritmo termine.
Un algoritmo tiene dos aspectos: el mtodo de solucin y la sucesin de
instrucciones para ponerlo en prctica, es decir, su implementacin.

Cantidad de trabajo realizado

Complejidad de un algoritmo implica la cantidad de trabajo realizada, medida


segn alguna medida de complejidad especfica, que en muchos ejemplos es el
nmero de operaciones bsicas especificadas que se efectan. Cabe sealar que,
en este caso, la complejidad nada tiene que ver con lo complicado o capcioso de
un algoritmo; un algoritmo muy complicado podra tener una complejidad baja.
Queremos una medida del trabajo que nos diga algo acerca de la eficiencia del
mtodo empleado por un algoritmo, con independencia no slo de la computadora,
el lenguaje de programacin y el programador, sino tambin de los mltiples
detalles de implementacin,

Consumo de espacio

Un programa requiere espacio de almacenamiento para sus instrucciones, las


constantes y variables que usa, y los datos de entrada. Tambin podra ocupar
cierto espacio de trabajo para manipular los datos y guardar informacin que
necesita para efectuar sus clculos. Los datos de entrada en s podran
representarse de varias maneras, algunas de las cuales requieren ms espacio
que otras.
El nmero de celdas de memoria utilizadas por un programa, al igual que el
nmero de segundos necesarios para ejecutar un programa, depende de la
implementacin especfica. No obstante, es posible sacar algunas conclusiones
acerca del consumo de espacio con slo examinar un algoritmo.
Sencillez

A menudo, pero no siempre, sucede que la forma ms sencilla y directa de


resolver un problema no es la ms eficiente. No obstante, la sencillez es una
caracterstica deseable de un algoritmo, pues podra facilitar la verificacin de que
el algoritmo es correcto, as como la escritura, depuracin y modificacin de los
programas. Al escoger un algoritmo, es recomendable considerar el tiempo
necesario para producir un programa depurado, pero si el programa se va a usar
con mucha frecuencia, lo ms probable es que el factor que determine la seleccin
sea la eficiencia.

Optimidad

Por ms ingeniosos que seamos, no podremos mejorar un algoritmo para un


problema ms all de cierto punto. Todo problema tiene una complejidad
inherente, es decir, existe una cantidad mnima de trabajo que debe efectuarse
para resolverlo.

Para analizar la complejidad de un problema, no la de un algoritmo especfico,


escogemos una clase de algoritmos (a menudo especificando los tipos de
operaciones que los algoritmos podrn realizar) y una medida de la complejidad,
por ejemplo, la o las operaciones bsicas que se contarn. Luego, podremos
preguntar cuntas operaciones se necesitan realmente para resolver el problema.

Decimos que un algoritmo es ptimo (en el peor caso) si ningn otro algoritmo de
la clase estudiada efecta menos operaciones bsicas (en el peor caso). Cabe
sealar que, cuando hablamos de los algoritmos de la clase estudiada, no nos
referimos nicamente a los algoritmos que han sido ideados. Estamos hablando
de todos los algoritmos posibles, incluso los que todava no se descubren.
ptimo no significa el mejor que se conoce; significa el mejor posible.

Bibliografa
Rivera, O. (2016). Estructura de Datos. Recuperado el 28 de Agosto de 2016,
de https://sites.google.com/site/estdatjiq/home/unidad-vii
Sara Baase, A. V. (2002). Algoritmos computacionales. Introduccion al anlisis y
diseo. Mxico: Pearson Educacin. Pp 30 - 39

Вам также может понравиться