Sunteți pe pagina 1din 6

S.E.P.

S.N.E.S.T.

D.G.E.S.T.

INSTITUTO TECNOLGICO DEL ISTMO


MATERIA:

Estructura de Datos.
CATEDRATICO:

Ing. Maranto Iglecias Jorge.


INTEGRANTES:

Cruz Anel Girn Hernndez Eliana Santos Daz Leslie Velzquez Castillo
TEMA:

Unidad 7 Anlisis de los Algoritmos.


ESPECIALIDAD:

Ing. En sistemas Computacionales


GRUPO:

3x

H E R O IC A C IU D A D D E JU C H IT A N D E Z A R A G O Z A , O A X A C A , A 0 8 D E S E P T IE M B R E D E L 2 0 1 1 .

I N D I C E.
ANALISIS DE LOS ALGORITMOS.3

COMPLEJIDAD EN EL TIEMPO. 4

COMPLEJIDAD EN EL ESPACIO.. 6

EFICIENCIA DE LOS ALGORITMOS. 6

ANALISIS DE LOS ALGORITMOS.


QU ES UN ALGORITMO? Es conjunto finito de reglas que dan una secuencia de operaciones para resolver todos los problemas de un tipo dado. De forma ms sencilla, podemos decir que un algoritmo es un conjunto de pasos que nos permite obtener un dato. Adems debe cumplir estas condiciones: Finitud: el algoritmo debe acabar tras un nmero finito de pasos. Es ms, es casi fundamental que sea en un nmero razonable de pasos. Definibilidad: el algoritmo debe definirse de forma precisa para cada paso, es decir, hay que evitar toda ambigedad al definir cada paso. Puesto que el lenguaje humano es impreciso, los algoritmos se expresan mediante un lenguaje formal, ya sea matemtico o de programacin para un computador. Entrada: el algoritmo tendr cero o ms entradas, es decir, cantidades dadas antes de empezar el algoritmo. Estas cantidades pertenecen adems a conjuntos especificados de objetos. Por ejemplo, pueden ser cadenas de caracteres, enteros, naturales, fraccionarios, etc. Se trata siempre de cantidades representativas del mundo real expresadas de tal forma que sean aptas para su interpretacin por el computador. Salida: el algoritmo tiene una o ms salidas, en relacin con las entradas. Efectividad: se entiende por esto que una persona sea capaz de realizar el algoritmo de modo exacto y sin ayuda de una mquina en un lapso de tiempo finito.

COMPLEJIDAD EN EL TIEMPO.
Todo algoritmo tiene una serie de caractersticas, entre otras que requiere una serie de recursos, algo que es fundamental considerar a la hora de implementarlos en una mquina. Estos recursos son principalmente: El tiempo: perodo transcurrido entre el inicio y la finalizacin del algoritmo. La memoria: la cantidad (la medida vara segn la mquina) que necesita el algoritmo para su ejecucin. Obviamente, la capacidad y el diseo de la mquina pueden afectar al diseo del algoritmo. El tiempo de ejecucin de un programa en funcin de N (numero de datos) se denomina T(N) y se calcula sobre el cdigo contando las instrucciones a ejecutar y multiplicando por el tiempo requerido para cada instruccin.

De esta manera puede establecerse un tiempo de ejecucin del algoritmo que suele ser proporcional a una de las siguientes funciones:

1: Tiempo de ejecucin constante. Significa que la mayora de las instrucciones se ejecutan una vez o muy pocas.

logN : Tiempo de ejecucin logartmico. Se puede considerar como una gran constante. La base del logaritmo (en informtica la ms comn es la base 2) cambia la constante, pero no demasiado. El programa es ms lento cuanto ms crezca N, pero es inapreciable, pues logN no se duplica hasta que N llegue a N2.

N: Tiempo de ejecucin lineal. Un caso en el que N valga 40, tardar el doble que otro en que N valga 20. Un ejemplo sera un algoritmo que lee N nmeros enteros y devuelve la media aritmtica.

NlogN : El tiempo de ejecucin es NlogN. Es comn encontrarlo en algoritmos como Quick Sort y otros del estilo divide y vencers. Si N se duplica, el tiempo de ejecucin es ligeramente mayor del doble.

N2: Tiempo de ejecucin cuadrtico. Suele ser habitual cuando se tratan pares de elementos de datos, como por ejemplo un bucle anidado doble. Si N se duplica, el tiempo de ejecucin aumenta cuatro veces. El peor caso de entrada del algoritmo Quick Sort se ejecuta en este tiempo.

N3: Tiempo de ejecucin cbico. Como ejemplo se puede dar el de un bucle anidado triple. Si N se duplica, el tiempo de ejecucin se multiplica por ocho.

2N: Tiempo de ejecucin exponencial. No suelen ser muy tiles en la prctica por el elevadsimo tiempo de ejecucin. El problema de la mochila resuelto por un algoritmo de fuerza bruta -simple vuelta atrses un ejemplo. Si N se duplica, el tiempo de ejecucin se eleva al cuadrado.

COMPLEJIDAD EN EL ESPACIO.
Es la memoria que utiliza un programa para su ejecucin; es decir el espacio de memoria que ocupan todas las variables propias del algoritmo. Esta se divide en Memoria Esttica y Memoria Dinmica. Memoria esttica. Para calcularla se suma de memoria que ocupan las variables declaradas en el algoritmo. Memoria dinmica. Su clculo no es tan simple ya que depende de cada ejecucin del algoritmo.

EFICIENCIA DE LOS ALGORITMOS.


En particular, usualmente se estudia la eficiencia de un algoritmo en tiempo (de ejecucin), espacio (de memoria) o nmero de procesadores (en algoritmos implementados en arquitecturas paralelas). Normalmente, un problema se puede resolver por mtodos distintos, con distintos grados de eficiencia. Ejemplo: bsqueda de un nmero en una gua telefnica. Cuando se usa un ordenador es importante limitar el consumo de recursos. Recursos: Tiempo:

Aplicaciones informticas que trabajan en tiempo real: requieren que los clculos se realicen en el menor tiempo posible. Aplicaciones que manejan un gran volumen de informacin: si no se tratan adecuadamente pueden necesitar tiempos impracticables. Espacio: Las mquinas tienen una memoria limitada.

S-ar putea să vă placă și