U7.resumen.ANALISIS DE LOS ALGORITMOS

1,077 views
968 views

Published on

Published in: Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,077
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
29
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

U7.resumen.ANALISIS DE LOS ALGORITMOS

  1. 1. INSTITUTO TECNOLOGICO SUPERIOR DE FELIPE CARRILLO PUERTO MATERIA: ESTRUCTURA DE DATOS RESUMEN UNIDAD 7: ANALISIS DE LOS ALGORITMOS. DOCENTE: Dr. Niels Henryck Aranda Cuevas ALUMNO: JOSE LUIS YAMA MAY SEMESTRE: III GRUPO: B AULA: J-4 VIERNES 14 de DICIEMBRE del AÑO 2012
  2. 2. ITS CARRILLO PUERTO ESTRUCTURA DE DATOSANÁLISIS DE ALGORITMOS.El análisis de algoritmos es una parte importante de la Teoría de complejidadcomputacional más amplia, que provee estimaciones teóricas para los recursosque necesita cualquier algoritmo que resuelva un problema computacional dado.Estas estimaciones resultan ser bastante útiles en la búsqueda de algoritmoseficientes.Para poder trabajar sobre el análisis de un algoritmo es necesario definir conclaridad que es un algoritmo, sus características en cuanto a estructura gráfica, sufuncionalidad y que aspectos se toman en cuenta o mejor dicho en que nosayudara esta herramienta, que si bien, es muy común escucharlo en el campo dela informática, es utiliza también en otras áreas por la ayuda que proporciona en latoma de decisiones sobre cualquier acción que se desee realizar, o programa,esto ultimo en la creación de software.DEFINICIÓN: Un algoritmo es una secuencia de pasos lógica para encontrar lasolución de un problema. Todo algoritmo debe contar con las siguientescaracterísticas: preciso, definido y finito. Por Preciso, entenderemos que cadapaso del algoritmo tiene una relación con el anterior y el siguiente; un algoritmo esDefinido, cuando se ejecuta más de una vez con los mismos datos y el resultadoes el mismo; y Finito, indica que el algoritmo cuenta con una serie de pasosdefinidos o que tiene un fin. Como se mencionó anteriormente, un algoritmo es útil para la toma dedecisiones sobre cualquier acción o programa que deseamos llevar a cabo. Perotambién es una herramienta útil para realizar pruebas sobre el funcionamiento decualquier cosa, ya sea antes de llevarlo a cabo o después para confirmar su buenfuncionamiento en cualquier condición de trabajo. Para dejar en claro esta apartado de la utilidad de los algoritmos comoherramientas de prueba tenemos lo siguiente que habla sobre las pruebas y comose dará cuanta tiene una serie de pasos a seguir y a cumplirse; eso es unalgoritmo. Tenemos como ejemplo dos tipos de pruebas muy conocidas en el campo delos sistemas computarizados, pero antes de entrar de lleno con estas pruebas,primero definiremos que es una prueba en computación: Prueba: es realizar una serie de acciones que nos permitan definir, si elelemento que sometemos a prueba cumple con su objetivo y con lo que se esperaserá su funcionalidad, o también se puede decir que, una prueba es factor críticopara garantizar la calidad del software. Una prueba conlleva la intención dedescubrir algún error 2 YAMA MAY JOSE LUIS
  3. 3. ITS CARRILLO PUERTO ESTRUCTURA DE DATOS Un caso de prueba es bueno cuando su ejecución conlleva una altaprobabilidad de encontrar un error. El éxito de la prueba se mide en función de lacapacidad de detectar un error que estaba oculto. Existen varios tipos de pruebacomo: las pruebas Unitarias, de Integración, de Aceptación, entre muchos otros.Dentro de la definición de prueba, se mencionan los errores, que puedengenerarse por varios motivos:  Error: acción humana que produce una falta.  Falta: algo que está mal en un producto (modelo, código, documento, etc.)  Fallo: manifestación de una falta.  Defecto: error, falta o fallo.Una vez estos conceptos, hablemos de las pruebas de caja blanca y caja negra,aunque se hablara más en específico de la primera prueba.Prueba De Caja Blanca La prueba de la caja blanca usa la estructura de control del diseñoprocedural para derivar los casos de prueba y tiene como idea o finalidad principalla de confeccionar casos de prueba que garanticen que se verifican todos loscaminos independientes. Además verifica cada camino de manera independiente,probando sus dos facetas desde el punto de vista lógico, es decir, verdadera yfalsa, ejecutando todos los bucles en sus límites operacionales y ejercitando lasestructuras internas de datos. Fue propuesta por Tom McCabe (1976). La idea es derivar casos de pruebaa partir de un conjunto dado de caminos independientes. Camino independiente es aquel que introduce por lo menos una sentenciade procesamiento (o valor de condición) que no estaba considerada. Para obtenerel conjunto de caminos independientes se construirá el Grafo de Flujo asociado yse calculará su Complejidad Ciclomática.Grafo de Flujo de las Estructuras Básicas de programa 3 YAMA MAY JOSE LUIS
  4. 4. ITS CARRILLO PUERTO ESTRUCTURA DE DATOSCon estos grafos se pretende básicamente; Separar todas las condiciones,Agrupar sentencias ‘simples’ en bloques, y Numerar todos los bloques y tambiénlas condiciones.Pruebas de Caja BlancaPrueba del Camino Básico - Complejidad CiclomáticaComplejidad Ciclomática de un grafo de flujo V (G) establece el número decaminos independientes. Puede calcularse de tres formas alternativas: 1. Mediante el número de regiones del grafo de flujo 2. V (G) = A - N + 2, donde A es el número de aristas y N es el número de nodos. 3. V (G) = P + 1, donde P es el número de nodos predicado.Pruebas de Caja Negra En cuanto a las pruebas de caja negra tenemos que abordar dos aspectosque se refieren a la Partición Equivalente y al Análisis de Valores Límite mediantela Verificación y Validación de los procesos llevados a cabo durante la prueba.Verificación: ¿estamos construyendo el producto correctamente?Validación: ¿estamos construyendo el producto correcto? En fin estas son las pruebas que se manejan como semejanza a losalgoritmos y con los que se pretende, dejar más en claro el objetivo de estaherramienta. Ahora bien, hablando de estructuras de datos podemos decir que losalgoritmos según su función se dividen en: Algoritmos de ordenamiento yAlgoritmos de búsqueda. Un algoritmo de ordenamiento, es el que pone los elementos de una lista ovector en una secuencia (ascendente o descendente) diferente a la entrada. Un algoritmo de búsqueda, es aquel que está diseñado para encontrar lasolución de un problema booleano de existencia o no de un elemento en particulardentro de un conjunto finito de elementos (estructura de datos) 4 YAMA MAY JOSE LUIS
  5. 5. ITS CARRILLO PUERTO ESTRUCTURA DE DATOS Además de que se utiliza para realizar pruebas de escritorio sobre elfuncionamiento de software.COMPLEJIDAD ALGORITMICA.La complejidad algorítmica representa la cantidad de recursos (temporales) quenecesita un algoritmo para resolver un problema y por tanto permite determinar laeficiencia de dicho algoritmo.Los criterios que se van a emplear para evaluar la complejidad algorítmica noproporcionan medidas absolutas sino medidas relativas al tamaño del problema.Tareas en el Análisis de Algoritmos: - Determinar qué operaciones se emplean y su costo relativo.- Determinar conjuntos de datos para exhibir todos los patrones posibles de comportamiento. - Análisis a priori: se determina una función (de ciertos parámetros) que acote el tiempo de cómputo del algoritmo. - Análisis a posteriori: estadísticas reales sobre tiempo y memoria.Tiempo De Ejecución De Un Algoritmo. La eficiencia en tiempo se mide en términos de la cantidad de tiempo deejecución del programa. El tiempo de ejecución de un algoritmo, se refiere a lasuma de los tiempos en los que el programa tarda en ejecutar una a una, todassus instrucciones, tomando en cuenta que cada instrucción requiere una unidad detiempo, dicho tiempo se puede calcular en función del número de datos.La Complejidad De Espacio La complejidad de espacio, se refiere a la memoria que utiliza un programapara su ejecución; es decir el espacio de memoria que ocupan todas las variablespropias del programa. Dicha memoria se divide en Memoria estática y Memoriadinámica.Para calcular la memoria estática, se suman la cantidad de memoria que ocupacada una de las variables declaradas en el programa.Eficiencia De Los Algoritmos Un algoritmo es eficiente cuando logra llegar a sus objetivos planteadosutilizando la menor cantidad de recursos posibles, es decir, minimizando el usomemoria, de pasos y de esfuerzo humano.Espacio: medida de la cantidad de memoria requerida por un programa.Tiempo: la cantidad de tiempo de ejecución del programa 5 YAMA MAY JOSE LUIS

×