ELO320 Estructuras de Datos y Algoritmos. Complejidad. Tomás Arredondo Vidal
|
|
- Mario Bustamante Morales
- hace 5 años
- Vistas:
Transcripción
1 ELO320 Estructuras de Datos y Algoritmos Complejidad Tomás Arredondo Vidal Este material está basado en: Robert Sedgewick, "Algorithms in C", (third edition), Addison-Wesley, 2001 Thomas Cormen et al, Algorithms, (eighth edition), MIT Press, material del curso ELO320 del Prof. Leopoldo Silva material en el sitio 7: Complejidad 1
2 7-Complejidad 7.1 Tiempo de ejecución: T(n) 7.2 Complejidad: O(n) 7.3 Complejidad: Θ(n) 7.4 Algoritmos 7: Complejidad 2
3 Tiempo de ejecución: T(n) Se desea tener una medida de la duración del tiempo de ejecución de un algoritmo en función del tamaño de la entrada n. A través de llamados al sistema operativo se puede conocer el valor del reloj del procesador. Invocando el reloj (e.g. usando clock( ) en Unix), antes y después de realizar el algoritmo se tendrá una medida de la duración del tiempo de ejecución: T(n). Esta medida es muy dependiente del hardware (memoria, reloj, procesador) y software (sistema operativo). 7: Complejidad 3
4 Tiempo de ejecución: T(n) (cont) Por la razón anterior como una medida del tiempo de ejecución, se considera contar las instrucciones del lenguaje de alto nivel que son necesarias realizar. El tamaño de la entrada (n) debe ser precisado con más detalle. En forma tradicional n se considera como el número de elementos o componentes básicos que son sometidos al proceso o algoritmo siendo medido. También se suele denominar a T(n) como una complejidad temporal. 7: Complejidad 4
5 Tiempo de ejecución: T(n) (cont) La función T(n) mide el tiempo que el algoritmo requiere para procesar los n elementos de entrada. El tiempo de ejecución de un algoritmo es la suma de los tiempos de cada línea ejecutada (i.e. statement) Una línea de código i que toma tiempo C i (e.g. pasos o ciclos del reloj) para ejecutar y se ejecuta n veces va a contribuir nc i al tiempo de ejecución del programa. Se debe sumar el tiempo de todas las líneas del programa para obtener T(n). Afecta al tiempo de ejecución el orden en que se presentan los elementos de entrada: un caso típico o promedio (e.g. random), el mejor caso posible, el peor caso posible (típicamente el caso mas importante). 7: Complejidad 5
6 Tipos de funciones de T(n) Las funciones T(n) pueden ser de varios tipos: Funciones constantes: T (n) = 5, T (n) = 10 Funciones logarítmicas: T (n) = log(n), T (n) = nlog(n) Funciones polinomiales: T (n) = 2n 2, T (n) = 8 n 2 + 5n Funciones exponenciales: T (n) = 2 n, T (n) = 2 5n Mezclas de las anteriores, Cualquier función de n en un caso general. 7: Complejidad 6
7 Ejemplo: Cálculo de T(n) (cont) Se calculan los tiempos asociadas a cada línea considerando como operaciones elementales a: comparaciones, asignaciones, sumas, restas, acceso a elementos. Cada operación elemental tiene asociado una unidad de tiempo (e.g. una constante o simplemente el valor 1). También se podría considerar esta unidad como cualquier constante (i.e. O(1)). 7: Complejidad 7
8 Ejemplo: Cálculo de T(n), (1era approx.) Algoritmo de ordenamiento (peor caso): (t i - 1) void Alg1(int a[], int n) { int i, j, temp; line cost times for (i=0; i<n-1; i++) //1 : C 1 t 1 = Σ i for (j=n-1; j>=i+1; j--) //2 : C 2 t 2 = Σ i (Σ j (...)) } if(a[j-1] > a[j]) { //3 : C 3 t 2-1 } temp=a[j-1]; //4 : C 4 t 2-1 a[j-1]=a[j]; //5 : C 5 t 2-1 a[j]=temp; //6 : C 6 t 2-1 7: Complejidad 8
9 Ejemplo: Cálculo de T(n) (2nda approx.) Sumando las operaciones ejecutadas por cada línea (peor caso) en su inicialización, iteración y salida: C 1 = ops 1 = en cada iteración + 2 C 2 = ops 2 = en cada iteración + 2 C 3 = ops 3 = 4 C 4 = ops 4 = 3 C 5 = ops 5 = 4 C 6 = ops 6 = 2 Las operaciones internas se realizan: (n-1) - (i+1) + 1 = (n-i-1) veces Considerando el for interno, T(n) tiene un costo: n 1 ( ) = 2 + T n ( ) + 2 = j= i ( n i 1) Considerando el for externo, T(n) tiene un costo: T ( n) = 1+ n 2 i= 0 (4 + (4 + 17( n i 1))) + 2 7: Complejidad 9
10 Ejemplo: Cálculo de T(n) (2nda approx.) El for externo tiene un costo: T ( n) = 1+ n 2 i= 0 (4 + (4 + 17( n i 1))) + 2 Arreglando y considerando los términos que no dependen de i se suman (n-1) veces: T ( n) = 3+ = 3 + n 2 i= 0 n 2 i= 0 (8 + 17( n i 1)) (8 + 17n 17 17i)) = 3 + (8 + 17n 17)( n 1) 17 n 2 i= 0 ( n 2)( n 1) = 3 + (8 + 17n 17)( n 1) = (17n n + 7) / 2 i 7: Complejidad 10
11 7-Complejidad 7.1 Tiempo de ejecución: T(n) 7.2 Complejidad: O(n) 7.3 Complejidad: Θ(n) 7.4 Algoritmos 7: Complejidad 11
12 O(n): Acotamiento de funciones El acotamiento de funciones permite clasificar las funciones por su orden de magnitud. Interesa encontrar una cota superior del crecimiento de la función T(n) a medida que n. Consideremos la siguiente definición preliminar de la función O mayúscula, con la intención de clasificar funciones de n. Ejemplo: se dice que T(n) es O(n i ), si existen constantes c 0 y n 0 tales que T(n) <= c 0 n i para todos los n >= n 0 7: Complejidad 12
13 Ejemplo: O(n) Sea T(n) = (n + 1) 2. Para el menor i posible... Hay que encontrar c 0 y n 0 tales que: (n + 1) 2 <= c 0 n i. 7: Complejidad 13
14 Ejemplo: O(n) (cont) Dado que T(n) = (n +1) 2. T (n) es O(n i ) si para el menor i posible se encuentran c 0 y n 0 tales que: T(n) <= c 0 n i (n+1) 2 <= c 0 n i. Si suponemos que i = 3: la desigualdad anterior se cumple para c = 4 y n >= 1 la desigualdad anterior se cumple para c = 2 y n >= 1,4376 Si suponemos que i = 2: la desigualdad anterior se cumple para c = 4 y n >= 1 Si suponemos que i = 1 la desigualdad no se cumple. Lo cual prueba que: T(n) = O(n 2 ). 7: Complejidad 14
15 O(n): Complejidad (O-notation) Definición de O(n): Se dice que T(n) es O( f(n) ) solo si existen c y n 0 tales que: T(n) <= c f(n) con n >= n 0 Sin embargo es posible acotar mejor el orden o magnitud de una función. Esto considerando el primer ejemplo, en el que se podía decir que T(n) era O(n 3 ) y también que era O(n 2 ). Θ(n) acota T(n) superior e inferiormente 7: Complejidad 15
16 Actividad: Probar que: T (n) = 3n 3 + 2n 2 es O(n 3 ) 7: Complejidad 16
17 O(n): Costo Unitario Aplicando la definición puede comprobarse que las funciones T(n) constantes tienen complejidad O(1). Ejemplo: Sea T(n) = 5. Se puede escribir: 5 <= c 1 con n >= n 0 Es simple encontrar: c = 6 y cualquier n 0 Es decir f(n) = 1. Con lo cual, se puede afirmar que : T(n) = 5 es O(1) para todo n. Una de las mayores simplificaciones para cálculos de complejidad es considerar que las acciones primitivas del lenguaje son de costo unitario. 7: Complejidad 17
18 O(n): Teorema de acciones secuénciales Teorema de acciones secuenciales: Se realiza la acción A, como la secuencia dos acciones A 1 y A 2 de complejidades temporales T 1 (n) y T 2 (n) respectivamente. Si T 1 (n) es O(f(n)) y T 2 (n) es O(g(n)) entonces A es de complejidad O( max( f(n), g(n) ). 7: Complejidad 18
19 O(n): Teorema de productos Teorema de productos. Si T 1 (n) es O(f(n)) y T 2 (n) es O(g(n)) entonces: T 1 (n)t 2 (n) es O( f(n) g(n) ). Ejemplos: O( 3 n 2 ) =? O( 3 n 2 ) = O (n 2 ) ya que 3 es O(1), y n 2 es O(n 2 ). Si c es una constante y n el tamaño de la entrada: O(c) = c*o(1) = O(1) O(cn) = c*o(n) = O(n) La regla del producto también puede aplicarse en: n*o( n ) = O (n 2 ) 7: Complejidad 19
20 O(n): Teorema de alternativas Teorema de alternativa if (...) then A1 else A2 A1(n) es O(f(n)) y A2(n) es O(g(n)) Se toma la complejidad de la acción de mayor orden, entonces esta condición es O( max(f(n), g(n) )). 7: Complejidad 20
21 O(n): Teorema de iteraciones Teorema de iteración for ( i = 0; i < n; i++) { } a; Por regla de sumas se tiene n veces la complejidad temporal de la acción a. Si la acción del bloque a es O(1) entonces el for es de complejidad n *O(1) = O(n) 7: Complejidad 21
22 7-Complejidad 7.1 Tiempo de ejecución: T(n) 7.2 Complejidad: O(n) 7.3 Complejidad: Θ(n) 7.4 Algoritmos 7: Complejidad 22
23 Θ(n): Acotamiento superior e inferior Una mejor definición para acotar funciones, es la función Big Theta Θ(n) que define simultáneamente cotas superior e inferiores para T(n). Es la definición preferencial de complejidad. Definición de Θ(n): Se dice que T(n) es Θ( f(n) ), si existen c 1, c 2 y n 0 tales que: c 1 f(n) <= T(n) <= c 2 f(n) con n >= n 0 7: Complejidad 23
24 Ejemplo Θ(n): Para el ejemplo anterior, c 1 = 3, y c 2 = 5, con n 0 =1. 7: Complejidad 24
25 Actividad Θ(n): Se tienen tres for anidados: for (i = 1; i <= n-1; i++) for( j = i+1; j <= n; j++) for (k = 1; k <= j; k++) { a[i]=a[j+2] ; } Calcular Θ(n). 7: Complejidad 25
26 7-Complejidad 7.1 Tiempo de ejecución: T(n) 7.2 Complejidad: O(n) 7.3 Complejidad: Θ(n) 7.4 Algoritmos 7: Complejidad 26
27 Evaluando la complejidad en función del tiempo: Dado que T(n) refleja el número de instrucciones de costo unitario que deben realizarse para n entradas Si T(1) es equivalente a 1 [μseg], se puede construir la siguiente tabla de tiempos de ejecución: El teorema de sumas nos da que: O(3n 2 + 7n) = O(n 2 ). La tabla muestra que las complejidades de los dos algoritmos cuadráticos son comparables en el orden de magnitud. 7: Complejidad 27
28 Relaciones de recurrencia: En varios casos de mucho interés se conoce la complejidad temporal de un algoritmo mediante una relación de recurrencia. Por ejemplo: T(n) = T(n/2) + c con T(1) = c. Es decir el algoritmo aplicado a una entrada de tamaño n, puede descomponerse en un problema de la mitad del tamaño. El costo de la descomposición es una constante de valor c. Para resolver una relación de recurrencia es preciso conocer el costo para una entrada dada; en este caso para entrada unitaria T(1) el costo es la constante c. 7: Complejidad 28
29 Relaciones de recurrencia: T(n)=O(log 2 n) Esto ocurre en programas que en cada pasada descartan la mitad de los datos de entrada Si a partir del caso conocido se van evaluando casos más complejos, pueden obtenerse una expresión general: T(n) Tiempo T(1) = c = c = 0 + c T(2) = T(1) + c = 2c = c + c T(4) = T(2) + c = 3c = 2c + c T(8) = T(4) + c = 4c = 3c + c T(16) =T(8) + c = 5c = 4c + c T(2 i ) = T(2 i-1 ) + c = (i+1)c= ic + c = c(i+1) 7: Complejidad 29
30 Relaciones de recurrencia: T(n)=O(log 2 n) Se han evaluado en números que son potencias de dos, para obtener con una expresión para el término general: Con 2 i = n, sacando logaritmo de dos en ambos lados: log 2 (2 i ) = log 2 (n), pero log 2 (2 i ) = i log 2 (2) = i. Resultando: i = log 2 (n). Reemplazando en la expresion general T(n) = c(i+1): T(n) = c(log 2 (n) + 1) 7: Complejidad 30
31 Relaciones de recurrencia: T(n)=O(log 2 n) Las gráficas muestran que para T(n) existen c1 y c2 que la acotan por encima y por debajo, para n > 2,2. Finalmente, se tiene que la solución de la ecuación de recurrencia es: T(n) = O( log 2 (n) ) 7: Complejidad 31
32 Relaciones de recurrencia: T(n)=O(log 2 n) Las gráficas comparan el costo lineal versus el logarítmico. 7: Complejidad 32
33 Búsqueda secuencial La búsqueda secuencial compara una clave con cada una de las n componentes. La primera vez que encuentre un elemento del arreglo igual al valor buscado se detiene el proceso. No encuentra claves repetidas y no se requiere que el arreglo esté ordenado. Si lo recorre en su totalidad, cuidando de no exceder los rangos del arreglo, y no lo encuentra debe indicarlo con algún valor específico de retorno. Se retornar el índice de la componente que cumple el criterio de búsqueda, un retorno con valor -1 (ya que no es un índice válido), indicará que el valor no fue hallado. 7: Complejidad 33
34 Búsqueda secuencial (cont) Indice BusquedaSecuencial(Tipo A[], Indice Inf, Indice Sup, Tipo Clave) { } Indice i; for (i = Inf; i <= Sup; i++) if (A[i] == Clave) return(i); return (-1) ; // no se encontró La iniciación del for es O(1). La condición del if es O(1), también el retorno es O(1). El test de la condición del for es O(1), también el incremento de i es O(1). El bloque se repite (Sup-Inf+1) veces en peor caso. T(n) = O(1) + (Sup-Inf + 1)*( O(1) + (O(1) + O(1)) + O(1) ) + O(1) Simplificando: T(n) = (Sup-Inf+1) O(1) + O(1) = O(Sup-Inf+1) La entrada n, es el número de componentes en las que se busca. Si n = Sup Inf+1, se tiene finalmente: T(n) = O(n). 7: Complejidad 34
35 Búsqueda binaria Se requiere tener un arreglo ordenado en forma ascendente. El algoritmo está basado en ubicar, mediante la variable auxiliar M, la mitad del arreglo aproximadamente: Entonces o se lo encuentra justo en el medio; el costo de encontrar la mitad es de costo constante. o en la mitad con índices menores que M si el valor buscado es menor que el de la componente ubicada en la mitad; o en la mitad con índices mayores que M si el valor buscado es mayor. El ajustar los índices también es de costo constante, corresponde a los dos if then else anidados. Si se tienen n componentes, la complejidad puede describir según: T(n) = T(n/2) + c La solución de esta ecuación de recurrencia es: T(n) = O(log(n)). 7: Complejidad 35
36 Búsqueda binaria (cont) int BusquedaBinaria(Tipo A[], Indice Inf, Indice Sup, Tipo Clave) { Indice M; while (verdadero) { M = (Inf + Sup)/2; if (Clave < A[M]) Sup = M - 1; else if (Clave > A[M]) Inf = M + 1; else return M; if (Inf > Sup) return (noencontrado) ; } } 7: Complejidad 36
37 Algoritmos de multiplicación Un algoritmo primitivo para efectuar multiplicaciones es mediante la suma repetitiva de uno de los operandos. Por ejemplo el producto de dos números de 4 bits: 0101* Este algoritmo requiere n sumas si los operandos son de n bits Lo cual implica un costo O(n 2 ) para la multiplicación, considerando que cada suma es de costo O(n). Razón por la cual se suelen diseñar unidades de multiplicación, en hardware, con mejores algoritmos. Cual es la complejidad considerando la suma como O(n)? 7: Complejidad 37
38 Algoritmos de multiplicación (cont) En un ambiente de microcontroladores o microprocesadores que no tengan implementadas la operación multiplicación o división, pero que si tengan: sumas, restas y desplazamientos a la izquierda y derecha en un bit, se pueden considerar esas instrucciones de costo O(1). Consideremos, en este último contexto, dos algoritmos para multiplicar: 7: Complejidad 38
39 Algoritmos de multiplicación (cont) /* retorna m*n */ unsigned int multiplique1(unsigned int m, unsigned int n) { } unsigned int r=0; while ( n>0 ) { } r+=m; n--; return(r); Cual es la complejidad? El bloque se repite n veces, y está constituido por un test de condición, una suma y un incremento. Todas operaciones que pueden traducirse a instrucciones de máquina, y se consideran de costo O(1). Entonces esta multiplicación es de costo O(n) o lineal. 7: Complejidad 39
40 Algoritmos de multiplicación (cont) /* retorna m*n */ unsigned int multiplique2(unsigned int m, { unsigned int r=0; while ( n>0 ) { } if(n&1) r+=m; m*=2; n/=2; return(r); } unsigned int n) Cual es la complejidad? En cada ciclo del while se divide por dos el valor de n. Multiplicación por dos (o left shift << 1) La división por dos equivale a un right shift (>> 1) El test del bit menos significativo se realiza con una operación and; acumular el producto parcial en la local r, se efectúa con una suma. Todas estas operaciones, en este ambiente se consideran de costo constante: con T(1) = O(1). El algoritmo puede describirse : T(n) = T(n/2) + O(1) = O(log 2 n) 7: Complejidad 40
41 Algoritmos de división Consideremos un algoritmo primitivo de división, basado en restas sucesivas. /* Retorna cuociente q y resto r. n = q*d + r. */ unsigned int divide1( unsigned int n, unsigned int d, unsigned int *r) { unsigned int q=0; while (n >= d) { } n -= d; q++; *r = n; //escribe el resto return(q); } Cual es la complejidad? En su peor caso, con denominador unitario, y n el máximo representable, se tiene costo: O(n). Entonces esta multiplicación es de costo O(n) o lineal. 7: Complejidad 41
42 Algoritmos de división (cont) // n/d -> q, r. Retorna cuociente q // y resto r. Con n = q*d + r. unsigned int divide2( unsigned int n, unsigned int d, unsigned int *r) { unsigned int dd=d, q=0; *r = n; while (dd <= n) dd*=2; while (dd > d) { dd/=2; q= q*2; if (dd <= *r) { *r-=dd; q++; } } return(q); } Cual es la complejidad? El primer while duplica el den. hasta que sea mayor que el num. Para 8 bits, el mayor numerador será: bin o 255dec. Si d es 1, el while genera lo siguiente para dd: 2, 4, 8, 16, 32, , 256. Y se realiza 8 veces. Lo cual también se puede calcular mediante log 2 (256) = log 2 (2 8 ) = 8. En el peor caso con d=1 y con el máx valor para n, se tienen log 2 n repeticiones. El segundo while divide por 2 el tamaño de dd que despues del primer loop es = n, su costo es: O(log 2 n) O(log 2 n) + O(log 2 n) = O(log 2 n) 7: Complejidad 42
43 Relaciones de recurrencia: T(n)=O(nlog 2 n) Esto ocurre en programas que en cada pasada descartan la mitad de los datos de entrada pero con un costo proporcional a n en cada iteración. Aparece en métodos basados en particiones (dividir para conquistar). Si a partir del caso conocido se van evaluando casos más complejos, pueden obtenerse: T(n) T(1) = c = c Tiempo T(2) = 2*T(1) + 2*c = 4c = 2c * 2 T(4) = 2*T(2) + 4*c = 12c = 4c * 3 T(8) = 2*T(4) + 8*c = 32c = 8c * 4 T(16) = 2*T(8) + 16*c = 80c = 16c * 5 T(2 i ) = 2*T(2 i-1 ) + 2 i c = (i+1)c= ic + c = 2 i c*(i+1) 7: Complejidad 43
44 Relaciones de recurrencia: T(n)=O(nlog 2 n) Se han evaluado en números que son potencias de dos, para obtener con una expresión para el término general: Con 2 i = n, sacando logaritmo de dos en ambos lados: log 2 (2 i ) = log 2 (n), pero log 2 (2 i ) = i log 2 (2) = i. Resultando: i = log 2 (n). Reemplazando en la expresión T(n) = 2 i c*(i+1): T(n) = nc * (log 2 (n) + 1) 7: Complejidad 44
45 Relaciones de recurrencia: T(n)=O(nlog 2 n) Las gráficas muestran que para T(n) existen c1 y c2 que la acotan por encima y por debajo, para n >= 2. Finalmente, se tiene que la solución de la ecuación de recurrencia es: T(n) = O( nlog 2 (n) ) 7: Complejidad 45
46 Comparación entre algunas complejidades 7: Complejidad 46
Estructura de Datos. Complejidad de Algoritmos. Algoritmo. Algoritmo. Mauricio Solar Lorna Figueroa
Estructura de Datos Complejidad de Algoritmos Mauricio Solar Lorna Figueroa 2010 1 Algoritmo Definición: Un algoritmo es un conjunto finito de instrucciones que sirven para resolver un problema si fueron
Más detallesAnálisis de algoritmos
Tema 05: no recursivos M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom 1 Contenido no recursivos La notación de Landau O La notación O Principio
Más detallesComplejidad computacional. Algoritmos y Estructuras de Datos I. Complejidad computacional. Notación O grande
Complejidad computacional Algoritmos y Estructuras de Datos I Segundo cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Algoritmos - clase 10 Introducción a la complejidad computacional y
Más detallesNotación Asintótica. Temas. Introducción Notación O Notación Omega Notación Theta. Análisis de Algoritmos
Notación Asintótica Análisis de Algoritmos Temas Introducción Notación O Notación Omega Notación Theta 1 Introducción Por qué el análisis de algoritmos? Determinar tiempos de respuesta (runtime) Determinar
Más detallesAnálisis y Diseño de Algoritmos. Complejidad Computacional
Análisis y Diseño de Algoritmos Complejidad Computacional Multiplicación Método Tradicional Método Russé Método Particiones Complejidad Computacional Tan pronto como una máquina análitica exista, será
Más detallesEstructuras de Datos y Algoritmos
Ejercicio 1: Estructuras de Datos y Algoritmos Año 2018 Práctico 2: Evaluación de Algoritmos (Finalización: 27/08) Ingeniería en Computación - Ingeniería en Informática - Profesorado en Computación Dados
Más detallesNOTACIÓN O GRANDE. El análisis de algoritmos estima el consumo de recursos de un algoritmo.
NOTACIÓN O GRANDE El análisis de algoritmos estima el consumo de recursos de un algoritmo. Esto nos permite comparar los costos relativos de dos o más algoritmos para resolver el mismo problema. El análisis
Más detallesEstructuras de Datos y Algoritmos
Estructuras de Datos y Algoritmos Práctico 2: Evaluación de Algoritmos (Finalización: 03/09) Ingeniería en Computación - Ingeniería en Informática Año 2015 Ejercicio 1: Dados los siguientes vectores, correspondientes
Más detallesProgramación Análisis de Algoritmos: Tiempo de Ejecución (Introducción)
Programación 2 5 - Análisis de Algoritmos: Tiempo de Ejecución (Introducción) 1 Análisis de Algoritmos: Introducción Qué algoritmos elegir para resolver un problema? Que sean fáciles de entender, codificar
Más detallesAnálisis y Diseño de Algoritmos
Análisis y Diseño de Algoritmos Notación Asintótica DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Introducción Por qué el análisis de algoritmos? Determinar tiempos de respuesta (runtime)
Más detallesDecrementa y vencerás II
Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 21 de febrero de 2018 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Decrementa y vencerás II 21 de febrero de 2018 1 / 22 1 Decrementa y vencerás II Dr. Eduardo
Más detallesELO320 Estructuras de Datos y Algoritmos. Heap & HeapSort. Tomás Arredondo Vidal
ELO320 Estructuras de Datos y Algoritmos Heap & HeapSort Tomás Arredondo Vidal Este material está basado en: Robert Sedgewick, "Algorithms in C", (third edition), Addison-Wesley, 2001 Thomas Cormen et
Más detallesProgramación II. Mario Aldea Rivas Programación II 04/04/11 1. Mario Aldea Rivas Programación II 04/04/11 2
Programación II Bloque temático 1. Lenguajes de programación Bloque temático 2. Metodología de programación Bloque temático 3. Esquemas algorítmicos Tema 5. Algoritmos voraces, heurísticos y aproximados
Más detallesAnálisis de algoritmos
Tema 08: Divide y vencerás (DyV) M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom 1 Contenido Introducción Divide y vencerás Observaciones
Más detallesTiempo de Ejecución. Midiendo el Tiempo de Ejecución
Tiempo de Ejecución Arturo Díaz Pérez Sección de Computación Departamento de Ingeniería Eléctrica CINVESTAV-IPN Av. Instituto Politécnico Nacional No. 2508 Col. San Pedro Zacatenco México, D. F. CP 07300
Más detallesDiseño y Análisis de Algoritmos
1. Recursividad 2. "Dividir para Reinar" 3. Recursividad y Tabulación (Programación Dinámica) 4. Métodos Matemáticos Funciones discretas Notación O Ecuaciones de recurrencia 5. Casos de Estudio Breve descripción
Más detallesELO311 Estructuras de Computadores Digitales. Algoritmos de Multiplicación y División
ELO311 Estructuras de Computadores Digitales Algoritmos de Multiplicación y División Tomás Arredondo Vidal Este material está basado en: material de apoyo del texto de David Patterson, John Hennessy, "Computer
Más detallesComplejidad computacional. Algoritmos y Estructuras de Datos I. Complejidad computacional. Notación O grande
Complejidad computacional Algoritmos y Estructuras de Datos I Segundo cuatrimestre de 2015 Departamento de Computación - FCEyN - UBA Algoritmos - clase 10 Introducción a la complejidad computacional y
Más detallesAlgoritmos Iterativos de Búsqueda y Ordenación y sus tiempos
Estructura de Datos y Algoritmos Algoritmos Iterativos de Búsqueda y Ordenación y sus tiempos 1. Algorimos de ordenación Discutiremos el problema de ordenar un array de elementos. A los efectos de simplificar
Más detallesdit UPM Tema 1: Algoritmos /complejidad /java Análisis y diseño de software José A. Mañas
Análisis y diseño de software dit UPM Tema 1: Algoritmos /complejidad /java José A. Mañas http://jungla.dit.upm.es/~pepe/doc/adsw/index.html 21.2.2018 referencias http://www.dit.upm.es/~pepe/doc/adsw/
Más detallesIntroducción al Análisis del Coste de Algoritmos
1/11 Introducción al Análisis del Coste de Algoritmos Josefina Sierra Santibáñez 7 de noviembre de 2017 2/11 Eficiencia de un Algoritmo Analizar un algoritmo significa, en el contexto de este curso, predecir
Más detallesArreglos. Algoritmos y Estructuras de Datos I. Arreglos en C++ Arreglos y listas
Arreglos Algoritmos y Estructuras de Datos I Primer cuatrimestre 2007 Teórica de imperativo 3 Algoritmos de búsqueda secuencias de una cantidad fija de variables del mismo tipo se declaran con un nombre,,
Más detalles1. Introducción al análisis de algoritmos
1. Introducción al análisis de algoritmos 1. Introducción al concepto de algoritmia 2. Eficiencia de un algoritmo 3. Notación asintótica 4. Reglas generales Bibliografía Brassard y Bratley, 97; capítulos
Más detallesAnálisis de Algoritmos
Análisis de Algoritmos IIC1253 IIC1253 Análisis de Algoritmos 1 / 36 Complejidad de un algoritmo Un algoritmo A puede ser pensado como una función A : {0,1} {0,1} Qué tan general es esta representación?
Más detallesAnálisis de Algoritmos
Análisis de Algoritmos IIC1253 IIC1253 Análisis de Algoritmos 1 / 36 Complejidad de un algoritmo Un algoritmo A puede ser pensado como una función A : {0,1} {0,1} Qué tan general es esta representación?
Más detallesAlgoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos
Algoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos 1! 1. Algoritmos recursivos " 1.1 Algoritmos recursivos. Recursión simple " 1.2 Algoritmos con vuelta atrás y ejemplos! 2. Complejidad de
Más detallesTema 5- Diseño Recursivo y Eficiente. Tema 5- Diseño Recursivo y. Descomposición recursiva ascendente de un vector. Etapas del diseño recursivo
Tema 5- Diseño Recursivo y Eficiente Tema 5- Diseño Recursivo y Eficiente Germán Moltó Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia Índice general: 1. Introducción
Más detallesAnálisis de algoritmos
Tema 03: Análisis temporal M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom 1 Contenido Caso de entrada Ejemplo 1 (Búsqueda lineal) Operación
Más detallesANÁLISIS Y DISEÑO DE ALGORITMOS
ANÁLISIS Y DISEÑO DE ALGORITMOS CURSO 2005/2006 BOLETÍN DE PROBLEMAS: DIVIDE Y VENCERÁS Ejercicio 1 Dado un vector ordenado y rotado k veces: diseñar un algoritmo O(log n) que encuentre el elemento mayor
Más detallesTécnicas y Herramientas. Algoritmos y Complejidad. Técnicas de Demostración. Técnicas y Herramientas. Herramientas Matemáticas Básicas
Técnicas y Herramientas Técnicas y Herramientas Pablo R. Fillottrani Depto. Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Primer Cuatrimestre 2014 Técnicas de Demostración Herramientas
Más detallesDiseño de algoritmos
Diseño de algoritmos Jesús Bermúdez de Andrés. UPV-EHU Guías para la solución de ejercicios: Análisis de algoritmos Curso 2008-09 1. Con un algoritmo de función de coste temporal f(n) = n 3 resolvemos
Más detallesAlgoritmos y Complejidad
Algoritmos y Complejidad Técnicas y Herramientas Pablo R. Fillottrani Depto. Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Primer Cuatrimestre 2014 Técnicas y Herramientas Técnicas
Más detallesComplejidad de los Algoritmos
Que es un Algoritmo? Complejidad de los Algoritmos Webster: cualquier método especial para resolver cierta clase de problemas. Horowitz: método preciso utilizable en una computadora para la solución de
Más detallesAlgoritmos de Búsqueda
Introducción a la Computación Algoritmos de Búsqueda Esteban E. Mocskos (emocskos@dc.uba.ar) Facultad de Ciencias Exactas y Naturales, UBA CONICET 11/10/2017 E. Mocskos (UBA CONICET) Algoritmos de Búsqueda
Más detallesGuía práctica de estudio 4 Algoritmos de búsqueda parte 1
Guía práctica de estudio 4 Algoritmos de búsqueda parte 1 Elaborado por: Revisión: Ing. Laura Sandoval Montaño Facultad de Ingeniería U.N.A.M. Guía Práctica 4 Estructura de datos y Algoritmos II Algoritmos
Más detallesDivide-y-vencerás, backtracking y programación dinámica
Divide-y-vencerás, backtracking y programación dinámica Diseño y Análisis de Algoritmos Cátedra de Programación Carrera de Ingeniería de Sistemas Prof. Isabel Besembel Carrera Noviembre, 2012 Prof. Isabel
Más detallesNotación Asintótica 2
Notación Asintótica 2 mat-151 1 Éxamen Rápido (6 minutos) Cada operación fundamental usa c milisegundos, cuánto tiempo toma contar hasta 1,000,000? Cuál es el valor de N? Cuál es el órden de complejidad
Más detallesELO320 Estructuras de Datos y Algoritmos. Arboles Binarios AVL. Tomás Arredondo Vidal
ELO320 Estructuras de Datos y Algoritmos Arboles Binarios AVL Tomás Arredondo Vidal Este material está basado en: Robert Sedgewick, "Algorithms in C", (third edition), Addison-Wesley, 2001 Thomas Cormen
Más detallesTema 01: Fundamentos del Análisis Asintótico de Algoritmos
Tema 01: Fundamentos del Análisis Asintótico de Algoritmos Noviembre, 2003 CS0218: Algoritmos y Programación II Introducción En Ciencias de la Computación se presenta con frecuencia la situación de analizar
Más detallesDepartamento de Informática Primer semestre de 2009 Ejercicios resueltos de temas del Certamen n o 3
Universidad Técnica Federico Santa María Fundamentos de Informática I Departamento de Informática Primer semestre de 2009 Ejercicios resueltos de temas del Certamen n o 3 1 Combinatoria 1. Se lanzan cuatro
Más detallesAlgorítmica y Lenguajes de Programación. Eficiencia y notación asintótica (ii)
Algorítmica y Lenguajes de Programación Eficiencia y notación asintótica (ii) Eficiencia y notación asintótica. Análisis de algoritmos En la lección anterior el concepto de eficiencia asintótica. En ésta
Más detallesAlgoritmos y Estructuras de Datos Curso 06/07. Ejercicios
6.1.(Clase) Un programa que utiliza la técnica divide y vencerás, divide un problema de tamaño n en a subproblemas de tamaño n/b. El tiempo g(n) de la resolución directa (caso base) se considerará constante.
Más detallesIntroducción y Comportamiento Asintótico
Introducción y Comportamiento Asintótico M. Andrea Rodríguez-Tastets Ayudante: Erick Elejalde Universidad de Concepción,Chile www.inf.udec.cl\ andrea andrea@udec.cl I Semestre - 2014 1/64 Problemas and
Más detallesELO320 Estructuras de Datos y Algoritmos. Codificación Binaria. Tomás Arredondo Vidal
ELO320 Estructuras de Datos y Algoritmos Codificación Binaria Tomás Arredondo Vidal Este material está basado en: Robert Sedgewick, "Algorithms in C", (third edition), Addison-Wesley, ISBN 0-201-31663-3,
Más detallesEstructuras de Datos. Andrea Rueda. Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas
Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Fundamentos de complejidad Es eficiente un algoritmo? Análisis de los recursos que el algoritmo
Más detallesAlgorítmica y Complejidad. Tema 5 Divide y Vencerás.
Algorítmica y Complejidad Tema Divide y Vencerás. . Método.. Un ejemplo sencillo.. Complejidad del método.. Ejemplo: El máximo subarray.. Ejemplo: Multiplicación de enteros. . Método.. Un ejemplo sencillo..
Más detallesAnálisis de Algoritmos CB-102
Análisis de Algoritmos CB-102 Algoritmos en Paralelo Centro de Manufactura / Centro de Sistema Inteligentes ITESM Algoritmos en Paralelo TC-4001 - p. 1/22 Hasta este punto, nuestro modelo de computación
Más detallesIntroducción al análisis de algoritmos
Estructura de Datos y Algoritmos Introducción al análisis de algoritmos 1. Eficiencia en tiempo de Ejecución Cuando resolvemos un problema nos vemos frecuentemente enfrentando una elección de programas,
Más detalles1/16. Coste de Algoritmos. 8 de abril de 2018
1/16 Coste de Algoritmos Josefina Sierra Santibáñez 8 de abril de 2018 2/16 Coste de un Algoritmo Analizar un algoritmo significa, en el contexto de este curso, estimar los recursos que requiere. Aunque
Más detalles4.1. Polinomios y teoría de ecuaciones
CAPÍTULO 4 Polinomios y teoría de ecuaciones 4.1. Polinomios y teoría de ecuaciones Un polinomio real en x, o simplemente polinomio en x es una expresión algebraica de la forma a n x n + a n 1 x n 1 +
Más detallesTema 3. Análisis de costes
Tema 3. Análisis de costes http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de la información
Más detallesEstructuras de Datos y Algoritmos. Curso 2009/2010. Tema 3: Divide y Vencerás
Estructuras de Datos y Algoritmos Facultad de Informática Universidad Politécnica de Valencia Curso 2009/2010 Tema 3: Divide y Vencerás FI UPV: Curso 2009/2010 TEMA 3. Divide y Vencerás Objetivos Estudio
Más detalles1. 1. Introducción al concepto de algoritmia
1. Introducción al análisis de algoritmos 1. Introducción al concepto de algoritmia 2. Eficiencia de un algoritmo 3. Notación asintótica 4. Reglas generales Bibliografía Básica: Aho, Hopcroft y Ullman,
Más detallesLa eficiencia de los programas
La eficiencia de los programas Jordi Linares Pellicer EPSA-DSIC Índice General 1 Introducción... 2 2 El coste temporal y espacial de los programas... 2 2.1 El coste temporal medido en función de tiempos
Más detallesNotación Asintótica. Programación Avanzada
Notación Asintótica Programación Avanzada Orden de crecimiento asintótico Ayuda a: Identificar el comportamiento de un algoritmo en el peor, el mejor o el caso promedio. Tener una idea del comportamiento
Más detallesProgramación. Curso 2005/2006. Tema 3: Complejidad computacional
Programación Facultad de Informática Universidad Politécnica de Valencia Curso 2005/2006 Tema 3: FI UPV: 29 de noviembre de 2005 Índice 1 Introducción 2 2 Consumo de recursos: costes espaciales y temporales
Más detallesAlgorítmica: Análisis de Algoritmos
Algorítmica: Análisis de Algoritmos Conrado Martínez U. Politècnica Catalunya Q1-2011-2012 Eficiencia de un algoritmo = consumo de recursos de cómputo: tiempo de ejecución y espacio de memoria Análisis
Más detallesELO320 Estructuras de Datos y Algoritmos. Listas. Tomás Arredondo Vidal
ELO320 Estructuras de Datos y Algoritmos Listas Tomás Arredondo Vidal Este material está basado en: Robert Sedgewick, "Algorithms in C", (third edition), Addison-Wesley, ISBN 0-201-31663-3. 2001 material
Más detallesAnálisis de la Complejidad de Algoritmos
Análisis de la Complejidad de Algoritmos Gráficas estadística y minería de datos con python Miguel Cárdenas Montes Centro de Investigaciones Energéticas Medioambientales y Tecnológicas, Madrid, Spain miguel.cardenas@ciemat.es
Más detalles11-Ordenar Definiciones 11.2 Selección 11.3 Intercambio 11.4 Inserción 11.5 Shellsort 11.6 Quicksort 11.7 Mergesort.
11-Ordenar 11.1 Definiciones 11.2 Selección 11.3 Intercambio 11.4 Inserción 11.5 Shellsort 11.6 Quicksort 11.7 Mergesort 11: Ordenar 2 Definiciones Se desea ordenar un set de estructuras, que contienen
Más detallesTécnicas de diseño de algoritmos Divide y Vencerás
Técnicas de diseño de algoritmos Divide y Vencerás Luis Javier Rodríguez Fuentes Amparo Varona Fernández Departamento de Electricidad y Electrónica Facultad de Ciencia y Tecnología, UPV/EHU luisjavier.rodriguez@ehu.es
Más detallesCI2612: Algoritmos y Estructuras de Datos II. Nociones básicas. Objetivos. Algoritmos. Blai Bonet
CI2612: Algoritmos y Estructuras de Datos II Blai Bonet Nociones básicas Universidad Simón Boĺıvar, Caracas, Venezuela Objetivos Algoritmos Concepto de algoritmo y modelo computacional Complejidad en tiempo
Más detallesTema 2 Fundamentos de Complejidad Algorítmica
Tema 2 Fundamentos de Complejidad Algorítmica Pablo Sánchez Dpto. Matemáticas, Estadística y Computación Universidad de Cantabria Santander (Cantabria, España) p.sanchez@unican.es Pablo Sánchez (MATESCO)
Más detallesEstructuras de Datos y de la Información Ingeniería Técnica en Informática de Gestión. Curso 2007/2008 Ejercicios del Tema 2
Estructuras de Datos y de la Información Ingeniería Técnica en Informática de Gestión. Curso 2007/2008 Ejercicios del Tema 2 Diseño de algoritmos recursivos 1. Dado un vector de enteros de longitud N,
Más detalles1. Definiciones previas
Universidad de Chile Facultad de Ciencias Físicas y Matemáticas Departamento de Ingeniería Matemática MA47A: Optimización Combinatorial Profesor: Roberto Cominetti Auxiliares: Raul Aliaga Diaz, Cristóbal
Más detallesConceptos Fundamentales del Análisis de Algoritmos II
Conceptos Fundamentales del Análisis de Algoritmos II Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 17 de enero de 2018 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Conceptos Fundamentales del Análisis II
Más detallesTema 3. Estructuras de control
Tema 3. Estructuras de control 3.1. Secuencial 3.2. Selección 3.3. Repetición 2 Objetivos Objetivos del tema: Conocer y saber la utilidad de las tres estructuras de control (secuencial, alternativa y repetitiva)
Más detallesIN34A - Optimización
IN34A - Optimización Complejidad Leonardo López H. lelopez@ing.uchile.cl Primavera 2008 1 / 33 Contenidos Problemas y Procedimientos de solución Problemas de optimización v/s problemas de decisión Métodos,
Más detallesComplejidad computacional y asintótica
Complejidad computacional y asintótica Complejidad computacional Indica el esfuerzo que hay que realizar para aplicar un algoritmo y lo costoso que éste resulta. La eficiencia suele medirse en términos
Más detallesComplejidad de algoritmos recursivos
Tema 3. Complejidad de algoritmos recursivos 1. INTRODUCCIÓN... 1 CLASIFICACIÓN DE FUNCIONES RECURSIVAS... 1 DISEÑO DE FUNCIONES RECURSIVAS... 2 2. VENTAJAS E INCONVENIENTES DE LA RECURSIVIDAD... 4 3.
Más detallesMultiplicación de matrices simétricas
Multiplicación de matrices simétricas La traspuesta de una matriz A n n es definida como una matriz A T n n tal que A T [i, j] =A[j, i] paracadai, j 2{1,...,n} Además, una matriz A es simétrica si A =
Más detallesAnálisis de Algoritmos
Análisis de Algoritmos Amalia Duch Barcelona, marzo de 2007 Índice 1. Costes en tiempo y en espacio 1 2. Coste en los casos mejor, promedio y peor 3 3. Notación asintótica 4 4. Coste de los algoritmos
Más detallesELO320 Estructuras de Datos y Algoritmos. Arboles Binarios. Tomás Arredondo Vidal
ELO320 Estructuras de Datos y Algoritmos Arboles Binarios Tomás Arredondo Vidal Este material está basado en: Robert Sedgewick, "Algorithms in C", (third edition), Addison-Wesley, 2001 Thomas Cormen et
Más detallesALGORITMOS INTRODUCCIÓN ALGORITMOS INTRODUCCIÓN AL ANÁLISIS Y AL DISEÑO DE AL ANÁLISIS Y AL DISEÑO DE UNIVERSIDAD AUTÓNOMA METROPOLITANA
INTRODUCCIÓN AL ANÁLISIS Y AL DISEÑO DE ALGORITMOS El análisis de la complejidad de algoritmos, así como la discusión de las ventajas/desventajas, que tienen diferentes soluciones a los problemas clásicos,
Más detallesTemario. Tipos de recursión. Eficiencia y recursión
RECURSION Temario Tipos de recursión Eficiencia y recursión Tipos de RECURSION Según desde donde se realice el llamado recursivo: Directa: la función se llama a sí misma. Indirecta: la función A llama
Más detallesLenguaje de Diseño. Primera Parte. Resolución de Problemas y Algoritmos. Primer Cuatrimestre Ing. En Informática e Ing.
Primera Parte Resolución de Problemas y Algoritmos Ing. En Informática e Ing. En Computación Primer Cuatrimestre 2017 1 Lenguajes Algorítmicos Los algoritmos pueden describirse, en mayor o menor detalle,
Más detallesAnálisis de Algoritmos
January 15, 010 1 Pseudocódigo 3 Modelos de referencia Antes de analizar un algoritmo debemos tener un modelo de la implementación de la tecnología que se va a usar, incluyendo un modelo para los recursos
Más detallesEstructuras de Datos. Clase 3 Análisis de algoritmos recursivos
Clase 3 Análisis de algoritmos recursivos http://cs.uns.edu.ar/~sag Bahía Blanca, Argentina Notación asintótica (Big-Oh) Sean f(n) y g(n) : N R f(n) es O(g(n)) ssiexisten c real con c>0 y n 0 natural con
Más detallesLenguaje de Diseño. Primera Parte. Segundo Cuatrimestre 2017
Primera Parte Fund. de la Informática Int. a la Programación Int. a la Computación Resolución de Problemas y Algoritmos Segundo Cuatrimestre 2017 1 Etapas en el proceso de resolver un problema: 1- Comprender
Más detallesCarlos Delgado Kloos Ingeniería Telemática Univ. Carlos III de Madrid. Java: Complejidad / 1
Complejidad Carlos Delgado Kloos Ingeniería Telemática Univ. Carlos III de Madrid cdk@it.uc3m.es Java: Complejidad / 1 Comparación long fib (int n) {if (n
Más detallesAlgoritmos Recursivos de Búsqueda y Ordenación y sus tiempos
Estructura de Datos y Algoritmos Algoritmos Recursivos de Búsqueda y Ordenación y sus tiempos 1. Algoritmos de ordenación recursivos 1.1. Mergesort, Ordenamiento por fusión Mergesort se ejecuta en un tiempo
Más detallesAlgoritmos Secuenciales y Recursivos
Algoritmos Secuenciales y Recursivos M. Andrea Rodríguez-Tastets Ayudante: Erick Elejalde Universidad de Concepción,Chile www.inf.udec.cl\ andrea andrea@udec.cl I Semestre - 2014 1/45 Análisis secuencial
Más detallesOrdenamiento (Sorting)
Ordenamiento (Sorting) El problema del ordenamiento Ordenar: arreglo[α] arreglo[α], donde α es un tipo tal que está definida la relación < α Uno de los problemas más clásicos, útiles y estudiados de la
Más detalles1. Algoritmo, programa y pseudocódigo. Introducción al estudio de algoritmos. Ejemplos
Introducción al estudio de algoritmos 1. Algoritmo, programa y pseudocódigo 2. Eficiencia y el principio de invarianza 3. Operaciones elementales 4. Casos mejor, peor y medio 5. Notación asintótica 6.
Más detallesAnálisis de algoritmos.
Análisis de algoritmos. - Introducción. - Notaciones asintóticas. - Ecuaciones de recurrencia. - Ejemplos. 1 Introducción Algoritmo: Conjunto de reglas para resolver un problema. Su ejecución requiere
Más detallesMuchas de las ecuaciones de recurrencia que vamos a usar en este curso tienen la siguiente forma: ( c n =0 T (n) = a T (b n b.
El Teorema Maestro Muchas de las ecuaciones de recurrencia que vamos a usar en este curso tienen la siguiente forma: ( c n =0 T (n) = a T (b n b c)+f (n) n 1 donde a, b y c son constantes, y f (n) es una
Más detallesAnálisis y Diseño de Algoritmos (AyDA) Isabel Besembel Carrera
Análisis y Diseño de Algoritmos (AyDA) Isabel Besembel Carrera RECURSIÓN La recursión es una técnica fundamental en el diseño de algoritmos, que está basada en la solución de versiones más pequeñas del
Más detallesCI2612: Algoritmos y Estructuras de Datos II. Recurrencias y el principio de dividir y conquistar. Recurrencias. Objetivos.
CI2612: Algoritmos y Estructuras de Datos II Blai Bonet Universidad Simón Boĺıvar, Caracas, Venezuela Recurrencias y el principio de dividir y conquistar Objetivos Recurrencias Repasar los conceptos de
Más detallesRecurrencias y cómo resolverlas
Recurrencias y cómo resolverlas Algoritmos y Estructuras de Datos II Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad de Buenos Aires 8 de septiembre de 2017 Algo2 (DC-FCEyN-UBA)
Más detallesAnálisis de algoritmos
Tema 02: Complejidad de los algoritmos M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom 1 Contenido Algoritmo Algoritmo vs. Proceso Computacional
Más detallesUNIDAD 1 NUMEROS COMPLEJOS
UNIDAD 1 NUMEROS COMPLEJOS El conjunto de los números complejos fue creado para poder resolver algunos problemas matemáticos que no tienen solución dentro del conjunto de los números reales. Por ejemplo
Más detallesELO320 Estructuras de Datos y Algoritmos. Stacks y Colas. Tomás Arredondo Vidal
ELO320 Estructuras de Datos y Algoritmos Stacks y Colas Tomás Arredondo Vidal Este material está basado en: Robert Sedgewick, "Algorithms in C", (third edition), Addison-Wesley, ISBN 0-201-31663-3. 2001
Más detallesAlgoritmos: Análisis de algoritmos
Algoritmos: Análisis de algoritmos Alberto Valderruten LFCIA - Departamento de Computación Facultad de Informática Universidad de A Coruña, España www.lfcia.org/alg www.fi.udc.es Contenido Análisis de
Más detallesCOMPLEJIDAD Y EFICIENCIA DE ALGORITMOS
UNIVERSIDAD NACIONAL DE SANTIAGO DEL ESTERO Facultad de Ciencias Exactas y Tecnologías Licenciatura en Sistemas de Información 2009 COMPLEJIDAD Y EFICIENCIA DE ALGORITMOS 1 TEORÍA DE LA COMPLEJIDAD Dado
Más detalles