SlideShare a Scribd company logo
1 of 64
Análisis de Algoritmos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Análisis de Algoritmos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Análisis de Algoritmos: O Grande ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Análisis de Algoritmos: Omega ,[object Object],[object Object],[object Object],[object Object],[object Object]
Análisis de Algoritmos: Theta ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Un ejemplo sencillo: Búsqueda Binaria begin i    1; j    n; q    false ; repeat  k    (i+j)  div  2; if  A[k] = x  then  q     true   else if  A[k]  < x  then  i    k+1   else  j    k-1 until  q  or  (i > j) end
[object Object],[object Object]
Supongamos un arreglo de 9 elementos: -15  -6  0  7  9  23  54  82  101 1  2  3  4  5  6  7  8  9 Por ejemplo, si buscamos el valor 101 i  j  k  q 1  9  5  false 6  9  7  false 8  9  8  false 9  9  9  true Éxito en 4 comparaciones
Ejemplo (continuación) Si buscamos el valor 14 i  j  k  q 1  9  5  false 1  4  2  false 1  1  1  false 2  1 Fracaso: no se encontró con 4 comparaciones
Ejemplo (continuación) Para x = 82 i  j  k  q 1  9  5  false 6  9  7  false 8  9  8  true Éxito en 3 comparaciones
Ejemplo (continuación) El número de comparaciones (de elementos) necesarias para encontrar cada uno de los 9 elementos es: A  [1]  [2] [3] [4] [5]  [6] [7] [8]  [9] elemento  -15  -6  0  7  9  23  54  82  101 comparaciones  3  2  3  4  1  3  2  3  4
Ejemplo (continuación) ,[object Object]
Ejemplo (continuación) ,[object Object],[object Object]
Ejemplo (continuación) ,[object Object],[object Object]
Finalmente ,[object Object]
Repaso: Inducción ,[object Object],[object Object],[object Object],[object Object],[object Object]
Prueba por Inducción ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejemplo de Inducción:  Forma cerrada de Gauss ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejemplo de Inducción: Forma Geométrica Cerrada ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Inducción ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Repaso: Comportamiento Asintótico ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Repaso: Tiempo de Ejecución ,[object Object],[object Object],[object Object],[object Object]
Un Ejemplo: Sort por Inserción SortInserción (A, n) { for i = 2 to n { item = A[i]; j = i - 1; while (j > 0) and (A[j] > item) { A[j+1] = A[j] j = j - 1 } A[j+1] = item } }
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 30 10 40 20 1 2 3 4 i =     j =   key =   A[j] =     A[j+1] =  
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 30 10 40 20 1 2 3 4 i = 2 j = 1 key = 10 A[j] = 30  A[j+1] = 10
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 30 30 40 20 1 2 3 4 i = 2 j = 1 key = 10 A[j] = 30  A[j+1] = 30
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 30 30 40 20 1 2 3 4 i = 2 j = 1 key = 10 A[j] = 30  A[j+1] = 30
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 30 30 40 20 1 2 3 4 i = 2 j = 0 key = 10 A[j] =     A[j+1] = 30
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 30 30 40 20 1 2 3 4 i = 2 j = 0 key = 10 A[j] =     A[j+1] = 30
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 20 1 2 3 4 i = 2 j = 0 key = 10 A[j] =     A[j+1] = 10
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 20 1 2 3 4 i = 3 j = 0 key = 10 A[j] =     A[j+1] = 10
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 20 1 2 3 4 i = 3 j = 0 key = 40 A[j] =     A[j+1] = 10
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 20 1 2 3 4 i = 3 j = 0 key = 40 A[j] =     A[j+1] = 10
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 20 1 2 3 4 i = 3 j = 2 key = 40 A[j] = 30  A[j+1] = 40
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 20 1 2 3 4 i = 3 j = 2 key = 40 A[j] = 30  A[j+1] = 40
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 20 1 2 3 4 i = 3 j = 2 key = 40 A[j] = 30  A[j+1] = 40
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 20 1 2 3 4 i = 4 j = 2 key = 40 A[j] = 30  A[j+1] = 40
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 20 1 2 3 4 i = 4 j = 2 key = 20 A[j] = 30  A[j+1] = 40
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 20 1 2 3 4 i = 4 j = 2 key = 20 A[j] = 30  A[j+1] = 40
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 20 1 2 3 4 i = 4 j = 3 key = 20 A[j] = 40  A[j+1] = 20
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 20 1 2 3 4 i = 4 j = 3 key = 20 A[j] = 40  A[j+1] = 20
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 40 1 2 3 4 i = 4 j = 3 key = 20 A[j] = 40  A[j+1] = 40
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 40 1 2 3 4 i = 4 j = 3 key = 20 A[j] = 40  A[j+1] = 40
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 40 1 2 3 4 i = 4 j = 3 key = 20 A[j] = 40  A[j+1] = 40
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 40 1 2 3 4 i = 4 j = 2 key = 20 A[j] = 30  A[j+1] = 40
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 40 1 2 3 4 i = 4 j = 2 key = 20 A[j] = 30  A[j+1] = 40
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 30 40 1 2 3 4 i = 4 j = 2 key = 20 A[j] = 30  A[j+1] = 30
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 30 40 1 2 3 4 i = 4 j = 2 key = 20 A[j] = 30  A[j+1] = 30
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 30 40 1 2 3 4 i = 4 j = 1 key = 20 A[j] = 10  A[j+1] = 30
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 30 40 1 2 3 4 i = 4 j = 1 key = 20 A[j] = 10  A[j+1] = 30
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 20 30 40 1 2 3 4 i = 4 j = 1 key = 20 A[j] = 10  A[j+1] = 20
Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 20 30 40 1 2 3 4 i = 4 j = 1 key = 20 A[j] = 10  A[j+1] = 20 ¡Listo!
Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } ¿Cuál es la precondición para este loop?
Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } ¿Cuántas veces se ejecuta  este loop?
Sort por Inserción Instrucción  Esfuerzo SortInserción(A, n) { for i = 2 to n {  c 1 n key = A[i] c 2 (n-1) j = i - 1; c 3 (n-1) while (j > 0) and (A[j] > key) { c 4 T A[j+1] = A[j] c 5 (T-(n-1)) j = j - 1 c 6 (T-(n-1)) } 0 A[j+1] = key c 7 (n-1) } 0 } T =  t 2  + t 3  + … + t n  donde t i  es el número de evaluaciones de la expresión while para la i-ésima iteración del loop
Análisis del Sort por Inserción ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Análisis ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Notación para el límite superior ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
El Sort por Inserción Es O(n 2 ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
O Grande ,[object Object],[object Object],[object Object],[object Object],[object Object],   n k  a i     n k  a i     cn k   n i n k
Complejidad Práctica
Complejidad Práctica
Complejidad Práctica
Complejidad Práctica

More Related Content

What's hot (20)

Apuntes y ejercicios Señales y sistemas (Borrador)
Apuntes y ejercicios Señales y sistemas (Borrador)Apuntes y ejercicios Señales y sistemas (Borrador)
Apuntes y ejercicios Señales y sistemas (Borrador)
 
ing industrial
ing industrialing industrial
ing industrial
 
Informe
InformeInforme
Informe
 
Recurrencias
RecurrenciasRecurrencias
Recurrencias
 
Ss clase 3
Ss   clase 3Ss   clase 3
Ss clase 3
 
O(nlogn) Analisis
O(nlogn) AnalisisO(nlogn) Analisis
O(nlogn) Analisis
 
Recursividad
RecursividadRecursividad
Recursividad
 
Algebra lineal ESPOL-folleto 2do parcial-ramiro-saltos
Algebra lineal ESPOL-folleto 2do parcial-ramiro-saltosAlgebra lineal ESPOL-folleto 2do parcial-ramiro-saltos
Algebra lineal ESPOL-folleto 2do parcial-ramiro-saltos
 
6 curvas
6 curvas6 curvas
6 curvas
 
Cálculo numérico 7 corrección
Cálculo numérico 7 correcciónCálculo numérico 7 corrección
Cálculo numérico 7 corrección
 
Series de fourier
Series de fourierSeries de fourier
Series de fourier
 
Ss clase 2
Ss   clase 2Ss   clase 2
Ss clase 2
 
Aplicas funciones periodicas
Aplicas funciones periodicasAplicas funciones periodicas
Aplicas funciones periodicas
 
Cap6
Cap6Cap6
Cap6
 
Series de fourier 22 Ejercicios Resueltos
Series de fourier 22 Ejercicios ResueltosSeries de fourier 22 Ejercicios Resueltos
Series de fourier 22 Ejercicios Resueltos
 
Funciones
FuncionesFunciones
Funciones
 
Transformaciones lineales
Transformaciones linealesTransformaciones lineales
Transformaciones lineales
 
Ejercicios resueltos 2011
Ejercicios resueltos 2011Ejercicios resueltos 2011
Ejercicios resueltos 2011
 
Utp pds_s9y10_transformada z
 Utp pds_s9y10_transformada z Utp pds_s9y10_transformada z
Utp pds_s9y10_transformada z
 
Dominio de una funcion vectorial - UNSCH
Dominio de una funcion vectorial - UNSCHDominio de una funcion vectorial - UNSCH
Dominio de una funcion vectorial - UNSCH
 

Viewers also liked

Presentación CITE
Presentación CITEPresentación CITE
Presentación CITELiz Pagan
 
Présentation nouvelles technologies ec nantes
Présentation nouvelles technologies ec nantesPrésentation nouvelles technologies ec nantes
Présentation nouvelles technologies ec nantesfpintodasilva
 
Construisez des maisons 3 fois plus vite & moins cher
Construisez des maisons 3 fois plus vite & moins cherConstruisez des maisons 3 fois plus vite & moins cher
Construisez des maisons 3 fois plus vite & moins cherpatrickserge
 
Diallo GuinéE CIRAD 2010
Diallo GuinéE CIRAD 2010Diallo GuinéE CIRAD 2010
Diallo GuinéE CIRAD 2010Mira Slavova
 
Wpf et Silverlight
Wpf et SilverlightWpf et Silverlight
Wpf et SilverlightSimon Robic
 
Présentation espace rdv offre d'essai 1 mois
Présentation espace rdv offre d'essai 1 moisPrésentation espace rdv offre d'essai 1 mois
Présentation espace rdv offre d'essai 1 moisJulien Audran
 
D orchidees du vietnam
D orchidees du vietnamD orchidees du vietnam
D orchidees du vietnamlyago
 
Figures de la bande dessinée numérique
Figures de la bande dessinée numériqueFigures de la bande dessinée numérique
Figures de la bande dessinée numériqueM@rsouin
 
Presentación de Hacer Historia Consultores
Presentación de Hacer Historia ConsultoresPresentación de Hacer Historia Consultores
Presentación de Hacer Historia ConsultoresJuan Carlos Lucas
 
Perspectives Internationales : quel meilleur candidat?
Perspectives Internationales : quel meilleur candidat?Perspectives Internationales : quel meilleur candidat?
Perspectives Internationales : quel meilleur candidat?Mélody Racine
 
Trois petites histoires de dette avec notes de la présentation
Trois petites histoires de dette   avec notes de la présentationTrois petites histoires de dette   avec notes de la présentation
Trois petites histoires de dette avec notes de la présentationBruno MOREL
 
UCM Talentum Mons - Séance d'info 2015
UCM Talentum Mons - Séance d'info 2015UCM Talentum Mons - Séance d'info 2015
UCM Talentum Mons - Séance d'info 2015Miletcherk
 
amandine-la-tarte-a-la-citrouille-2
amandine-la-tarte-a-la-citrouille-2amandine-la-tarte-a-la-citrouille-2
amandine-la-tarte-a-la-citrouille-2Diya Lim
 
Pourquoi les consommateurs recommandent-ils leur opérateur mobile ? Évidence ...
Pourquoi les consommateurs recommandent-ils leur opérateur mobile ?Évidence ...Pourquoi les consommateurs recommandent-ils leur opérateur mobile ?Évidence ...
Pourquoi les consommateurs recommandent-ils leur opérateur mobile ? Évidence ...M@rsouin
 

Viewers also liked (20)

Presentación CITE
Presentación CITEPresentación CITE
Presentación CITE
 
Présentation nouvelles technologies ec nantes
Présentation nouvelles technologies ec nantesPrésentation nouvelles technologies ec nantes
Présentation nouvelles technologies ec nantes
 
Construisez des maisons 3 fois plus vite & moins cher
Construisez des maisons 3 fois plus vite & moins cherConstruisez des maisons 3 fois plus vite & moins cher
Construisez des maisons 3 fois plus vite & moins cher
 
Diallo GuinéE CIRAD 2010
Diallo GuinéE CIRAD 2010Diallo GuinéE CIRAD 2010
Diallo GuinéE CIRAD 2010
 
Wpf et Silverlight
Wpf et SilverlightWpf et Silverlight
Wpf et Silverlight
 
Présentation espace rdv offre d'essai 1 mois
Présentation espace rdv offre d'essai 1 moisPrésentation espace rdv offre d'essai 1 mois
Présentation espace rdv offre d'essai 1 mois
 
KOSMIK
KOSMIKKOSMIK
KOSMIK
 
Vol
VolVol
Vol
 
Andre vert JFK2011
Andre vert JFK2011Andre vert JFK2011
Andre vert JFK2011
 
D orchidees du vietnam
D orchidees du vietnamD orchidees du vietnam
D orchidees du vietnam
 
Figures de la bande dessinée numérique
Figures de la bande dessinée numériqueFigures de la bande dessinée numérique
Figures de la bande dessinée numérique
 
Presentación de Hacer Historia Consultores
Presentación de Hacer Historia ConsultoresPresentación de Hacer Historia Consultores
Presentación de Hacer Historia Consultores
 
Duysens jfk2011
Duysens jfk2011Duysens jfk2011
Duysens jfk2011
 
Ferrandez jfk2011
Ferrandez jfk2011Ferrandez jfk2011
Ferrandez jfk2011
 
Perspectives Internationales : quel meilleur candidat?
Perspectives Internationales : quel meilleur candidat?Perspectives Internationales : quel meilleur candidat?
Perspectives Internationales : quel meilleur candidat?
 
Trois petites histoires de dette avec notes de la présentation
Trois petites histoires de dette   avec notes de la présentationTrois petites histoires de dette   avec notes de la présentation
Trois petites histoires de dette avec notes de la présentation
 
UCM Talentum Mons - Séance d'info 2015
UCM Talentum Mons - Séance d'info 2015UCM Talentum Mons - Séance d'info 2015
UCM Talentum Mons - Séance d'info 2015
 
amandine-la-tarte-a-la-citrouille-2
amandine-la-tarte-a-la-citrouille-2amandine-la-tarte-a-la-citrouille-2
amandine-la-tarte-a-la-citrouille-2
 
Sfp 2010
Sfp  2010Sfp  2010
Sfp 2010
 
Pourquoi les consommateurs recommandent-ils leur opérateur mobile ? Évidence ...
Pourquoi les consommateurs recommandent-ils leur opérateur mobile ?Évidence ...Pourquoi les consommateurs recommandent-ils leur opérateur mobile ?Évidence ...
Pourquoi les consommateurs recommandent-ils leur opérateur mobile ? Évidence ...
 

Similar to Análisis Algoritmos Observaciones Constante Irrelevante

Similar to Análisis Algoritmos Observaciones Constante Irrelevante (20)

Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Insercion directa
Insercion directaInsercion directa
Insercion directa
 
Analisis Clase2
Analisis  Clase2Analisis  Clase2
Analisis Clase2
 
Complejidad de Algoritmos
Complejidad de AlgoritmosComplejidad de Algoritmos
Complejidad de Algoritmos
 
jaisan
jaisanjaisan
jaisan
 
Números naturales
Números naturalesNúmeros naturales
Números naturales
 
Módulo 3
Módulo 3Módulo 3
Módulo 3
 
Universidad de oriente
Universidad de orienteUniversidad de oriente
Universidad de oriente
 
Manual de prácticas java 2015
Manual de prácticas java 2015Manual de prácticas java 2015
Manual de prácticas java 2015
 
Resolución de problemas con java
Resolución de problemas con javaResolución de problemas con java
Resolución de problemas con java
 
2 eficiencia
2 eficiencia2 eficiencia
2 eficiencia
 
InduccióN.Ppt
InduccióN.PptInduccióN.Ppt
InduccióN.Ppt
 
El Principio de Inducción
El Principio de InducciónEl Principio de Inducción
El Principio de Inducción
 
Matrices c++
Matrices c++Matrices c++
Matrices c++
 
El Principio De Inducción
El Principio De InducciónEl Principio De Inducción
El Principio De Inducción
 
Analisis de algoritmos tarea 2
Analisis de algoritmos tarea 2Analisis de algoritmos tarea 2
Analisis de algoritmos tarea 2
 
REPASO EXAMEN FINAL.pptx
REPASO EXAMEN FINAL.pptxREPASO EXAMEN FINAL.pptx
REPASO EXAMEN FINAL.pptx
 
Unidad 1.1
Unidad 1.1Unidad 1.1
Unidad 1.1
 
Complejidad Computacional
Complejidad ComputacionalComplejidad Computacional
Complejidad Computacional
 
Teorema-Taylor-Apuntes.pdf
Teorema-Taylor-Apuntes.pdfTeorema-Taylor-Apuntes.pdf
Teorema-Taylor-Apuntes.pdf
 

More from Spimy

Gonzalorojas 07 U M L, Casos De Uso ( Final)
Gonzalorojas 07  U M L,  Casos De  Uso ( Final)Gonzalorojas 07  U M L,  Casos De  Uso ( Final)
Gonzalorojas 07 U M L, Casos De Uso ( Final)Spimy
 
Gonzalorojas 11 Uml, Diagrama De Colaboracion
Gonzalorojas 11 Uml, Diagrama De ColaboracionGonzalorojas 11 Uml, Diagrama De Colaboracion
Gonzalorojas 11 Uml, Diagrama De ColaboracionSpimy
 
Gonzalorojas 09 U M L, Diagrama De Clases
Gonzalorojas 09  U M L,  Diagrama De  ClasesGonzalorojas 09  U M L,  Diagrama De  Clases
Gonzalorojas 09 U M L, Diagrama De ClasesSpimy
 
Gonzalorojas 08 U M L, Diagramas De Secuencia
Gonzalorojas 08  U M L,  Diagramas De  SecuenciaGonzalorojas 08  U M L,  Diagramas De  Secuencia
Gonzalorojas 08 U M L, Diagramas De SecuenciaSpimy
 
Gonzalorojas 12 Uml, Patrones De Diseno
Gonzalorojas 12 Uml, Patrones De DisenoGonzalorojas 12 Uml, Patrones De Diseno
Gonzalorojas 12 Uml, Patrones De DisenoSpimy
 
Gonzalorojas 10 Uml, Esquema Conceptual
Gonzalorojas 10 Uml, Esquema ConceptualGonzalorojas 10 Uml, Esquema Conceptual
Gonzalorojas 10 Uml, Esquema ConceptualSpimy
 
Mpinning Gy Alg10(Busqueda)
Mpinning Gy Alg10(Busqueda)Mpinning Gy Alg10(Busqueda)
Mpinning Gy Alg10(Busqueda)Spimy
 

More from Spimy (7)

Gonzalorojas 07 U M L, Casos De Uso ( Final)
Gonzalorojas 07  U M L,  Casos De  Uso ( Final)Gonzalorojas 07  U M L,  Casos De  Uso ( Final)
Gonzalorojas 07 U M L, Casos De Uso ( Final)
 
Gonzalorojas 11 Uml, Diagrama De Colaboracion
Gonzalorojas 11 Uml, Diagrama De ColaboracionGonzalorojas 11 Uml, Diagrama De Colaboracion
Gonzalorojas 11 Uml, Diagrama De Colaboracion
 
Gonzalorojas 09 U M L, Diagrama De Clases
Gonzalorojas 09  U M L,  Diagrama De  ClasesGonzalorojas 09  U M L,  Diagrama De  Clases
Gonzalorojas 09 U M L, Diagrama De Clases
 
Gonzalorojas 08 U M L, Diagramas De Secuencia
Gonzalorojas 08  U M L,  Diagramas De  SecuenciaGonzalorojas 08  U M L,  Diagramas De  Secuencia
Gonzalorojas 08 U M L, Diagramas De Secuencia
 
Gonzalorojas 12 Uml, Patrones De Diseno
Gonzalorojas 12 Uml, Patrones De DisenoGonzalorojas 12 Uml, Patrones De Diseno
Gonzalorojas 12 Uml, Patrones De Diseno
 
Gonzalorojas 10 Uml, Esquema Conceptual
Gonzalorojas 10 Uml, Esquema ConceptualGonzalorojas 10 Uml, Esquema Conceptual
Gonzalorojas 10 Uml, Esquema Conceptual
 
Mpinning Gy Alg10(Busqueda)
Mpinning Gy Alg10(Busqueda)Mpinning Gy Alg10(Busqueda)
Mpinning Gy Alg10(Busqueda)
 

Análisis Algoritmos Observaciones Constante Irrelevante

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. Un ejemplo sencillo: Búsqueda Binaria begin i  1; j  n; q  false ; repeat k  (i+j) div 2; if A[k] = x then q  true else if A[k] < x then i  k+1 else j  k-1 until q or (i > j) end
  • 7.
  • 8. Supongamos un arreglo de 9 elementos: -15 -6 0 7 9 23 54 82 101 1 2 3 4 5 6 7 8 9 Por ejemplo, si buscamos el valor 101 i j k q 1 9 5 false 6 9 7 false 8 9 8 false 9 9 9 true Éxito en 4 comparaciones
  • 9. Ejemplo (continuación) Si buscamos el valor 14 i j k q 1 9 5 false 1 4 2 false 1 1 1 false 2 1 Fracaso: no se encontró con 4 comparaciones
  • 10. Ejemplo (continuación) Para x = 82 i j k q 1 9 5 false 6 9 7 false 8 9 8 true Éxito en 3 comparaciones
  • 11. Ejemplo (continuación) El número de comparaciones (de elementos) necesarias para encontrar cada uno de los 9 elementos es: A [1] [2] [3] [4] [5] [6] [7] [8] [9] elemento -15 -6 0 7 9 23 54 82 101 comparaciones 3 2 3 4 1 3 2 3 4
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23. Un Ejemplo: Sort por Inserción SortInserción (A, n) { for i = 2 to n { item = A[i]; j = i - 1; while (j > 0) and (A[j] > item) { A[j+1] = A[j] j = j - 1 } A[j+1] = item } }
  • 24. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 30 10 40 20 1 2 3 4 i =  j =  key =  A[j] =  A[j+1] = 
  • 25. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 30 10 40 20 1 2 3 4 i = 2 j = 1 key = 10 A[j] = 30 A[j+1] = 10
  • 26. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 30 30 40 20 1 2 3 4 i = 2 j = 1 key = 10 A[j] = 30 A[j+1] = 30
  • 27. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 30 30 40 20 1 2 3 4 i = 2 j = 1 key = 10 A[j] = 30 A[j+1] = 30
  • 28. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 30 30 40 20 1 2 3 4 i = 2 j = 0 key = 10 A[j] =  A[j+1] = 30
  • 29. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 30 30 40 20 1 2 3 4 i = 2 j = 0 key = 10 A[j] =  A[j+1] = 30
  • 30. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 20 1 2 3 4 i = 2 j = 0 key = 10 A[j] =  A[j+1] = 10
  • 31. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 20 1 2 3 4 i = 3 j = 0 key = 10 A[j] =  A[j+1] = 10
  • 32. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 20 1 2 3 4 i = 3 j = 0 key = 40 A[j] =  A[j+1] = 10
  • 33. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 20 1 2 3 4 i = 3 j = 0 key = 40 A[j] =  A[j+1] = 10
  • 34. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 20 1 2 3 4 i = 3 j = 2 key = 40 A[j] = 30 A[j+1] = 40
  • 35. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 20 1 2 3 4 i = 3 j = 2 key = 40 A[j] = 30 A[j+1] = 40
  • 36. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 20 1 2 3 4 i = 3 j = 2 key = 40 A[j] = 30 A[j+1] = 40
  • 37. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 20 1 2 3 4 i = 4 j = 2 key = 40 A[j] = 30 A[j+1] = 40
  • 38. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 20 1 2 3 4 i = 4 j = 2 key = 20 A[j] = 30 A[j+1] = 40
  • 39. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 20 1 2 3 4 i = 4 j = 2 key = 20 A[j] = 30 A[j+1] = 40
  • 40. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 20 1 2 3 4 i = 4 j = 3 key = 20 A[j] = 40 A[j+1] = 20
  • 41. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 20 1 2 3 4 i = 4 j = 3 key = 20 A[j] = 40 A[j+1] = 20
  • 42. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 40 1 2 3 4 i = 4 j = 3 key = 20 A[j] = 40 A[j+1] = 40
  • 43. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 40 1 2 3 4 i = 4 j = 3 key = 20 A[j] = 40 A[j+1] = 40
  • 44. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 40 1 2 3 4 i = 4 j = 3 key = 20 A[j] = 40 A[j+1] = 40
  • 45. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 40 1 2 3 4 i = 4 j = 2 key = 20 A[j] = 30 A[j+1] = 40
  • 46. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 40 40 1 2 3 4 i = 4 j = 2 key = 20 A[j] = 30 A[j+1] = 40
  • 47. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 30 40 1 2 3 4 i = 4 j = 2 key = 20 A[j] = 30 A[j+1] = 30
  • 48. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 30 40 1 2 3 4 i = 4 j = 2 key = 20 A[j] = 30 A[j+1] = 30
  • 49. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 30 40 1 2 3 4 i = 4 j = 1 key = 20 A[j] = 10 A[j+1] = 30
  • 50. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 30 30 40 1 2 3 4 i = 4 j = 1 key = 20 A[j] = 10 A[j+1] = 30
  • 51. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 20 30 40 1 2 3 4 i = 4 j = 1 key = 20 A[j] = 10 A[j+1] = 20
  • 52. Un Ejemplo: Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } 10 20 30 40 1 2 3 4 i = 4 j = 1 key = 20 A[j] = 10 A[j+1] = 20 ¡Listo!
  • 53. Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } ¿Cuál es la precondición para este loop?
  • 54. Sort por Inserción SortInserción(A, n) { for i = 2 to n { key = A[i] j = i - 1; while (j > 0) and (A[j] > key) { A[j+1] = A[j] j = j - 1 } A[j+1] = key } } ¿Cuántas veces se ejecuta este loop?
  • 55. Sort por Inserción Instrucción Esfuerzo SortInserción(A, n) { for i = 2 to n { c 1 n key = A[i] c 2 (n-1) j = i - 1; c 3 (n-1) while (j > 0) and (A[j] > key) { c 4 T A[j+1] = A[j] c 5 (T-(n-1)) j = j - 1 c 6 (T-(n-1)) } 0 A[j+1] = key c 7 (n-1) } 0 } T = t 2 + t 3 + … + t n donde t i es el número de evaluaciones de la expresión while para la i-ésima iteración del loop
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.