Mpinning Gyalg12(Analg)

Spimy
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
1 von 64

Recomendados

Mpinning Gyalg13(Recurr) von
Mpinning Gyalg13(Recurr)Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)Spimy
351 views47 Folien
Mpinning Gy Alg9(Conteo) von
Mpinning Gy Alg9(Conteo)Mpinning Gy Alg9(Conteo)
Mpinning Gy Alg9(Conteo)Spimy
401 views45 Folien
Mpinning Gy Alg10(Busqueda) von
Mpinning Gy Alg10(Busqueda)Mpinning Gy Alg10(Busqueda)
Mpinning Gy Alg10(Busqueda)Spimy
248 views29 Folien
Ejercicios resueltos(f.vectoriales)(1) von
Ejercicios resueltos(f.vectoriales)(1)Ejercicios resueltos(f.vectoriales)(1)
Ejercicios resueltos(f.vectoriales)(1)ratix
62.1K views21 Folien
11 maximos y minimos von
11 maximos y minimos11 maximos y minimos
11 maximos y minimosalex
33K views34 Folien
Apuntes transformaciones lineales - UTFSM von
Apuntes transformaciones lineales - UTFSMApuntes transformaciones lineales - UTFSM
Apuntes transformaciones lineales - UTFSMCristian Cofré Sepúlveda
130.8K views25 Folien

Más contenido relacionado

Was ist angesagt?

Apuntes y ejercicios Señales y sistemas (Borrador) von
Apuntes y ejercicios Señales y sistemas (Borrador)Apuntes y ejercicios Señales y sistemas (Borrador)
Apuntes y ejercicios Señales y sistemas (Borrador)Julio Daniel Ruano
15.7K views57 Folien
ing industrial von
ing industrialing industrial
ing industrialRodrigo Garcia
217 views17 Folien
Informe von
InformeInforme
InformeYadira Fuentes
675 views82 Folien
Recurrencias von
RecurrenciasRecurrencias
RecurrenciasRoad Manuel Garcia Ramirez
641 views30 Folien
Ss clase 3 von
Ss   clase 3Ss   clase 3
Ss clase 3kevinXD123
751 views21 Folien
O(nlogn) Analisis von
O(nlogn) AnalisisO(nlogn) Analisis
O(nlogn) AnalisisJuan Zamora, MSc. MBA
500 views10 Folien

Was ist angesagt?(20)

Apuntes y ejercicios Señales y sistemas (Borrador) von Julio Daniel Ruano
Apuntes y ejercicios Señales y sistemas (Borrador)Apuntes y ejercicios Señales y sistemas (Borrador)
Apuntes y ejercicios Señales y sistemas (Borrador)
Julio Daniel Ruano15.7K views
Recursividad von britkarem
RecursividadRecursividad
Recursividad
britkarem1.1K views
Series de fourier 22 Ejercicios Resueltos von Joe Arroyo Suárez
Series de fourier 22 Ejercicios ResueltosSeries de fourier 22 Ejercicios Resueltos
Series de fourier 22 Ejercicios Resueltos
Joe Arroyo Suárez307.6K views
Funciones von Iva C
FuncionesFunciones
Funciones
Iva C3.8K views
Ejercicios resueltos 2011 von Deyvid Atens
Ejercicios resueltos 2011Ejercicios resueltos 2011
Ejercicios resueltos 2011
Deyvid Atens29.3K views
Utp pds_s9y10_transformada z von jcbenitezp
 Utp pds_s9y10_transformada z Utp pds_s9y10_transformada z
Utp pds_s9y10_transformada z
jcbenitezp2.7K views
Dominio de una funcion vectorial - UNSCH von Darcknes
Dominio de una funcion vectorial - UNSCHDominio de una funcion vectorial - UNSCH
Dominio de una funcion vectorial - UNSCH
Darcknes32.6K views

Destacado

Presentación CITE von
Presentación CITEPresentación CITE
Presentación CITELiz Pagan
357 views10 Folien
Présentation nouvelles technologies ec nantes von
Présentation nouvelles technologies ec nantesPrésentation nouvelles technologies ec nantes
Présentation nouvelles technologies ec nantesfpintodasilva
1.2K views40 Folien
Construisez des maisons 3 fois plus vite & moins cher von
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
1.8K views8 Folien
Diallo GuinéE CIRAD 2010 von
Diallo GuinéE CIRAD 2010Diallo GuinéE CIRAD 2010
Diallo GuinéE CIRAD 2010Mira Slavova
719 views22 Folien
Wpf et Silverlight von
Wpf et SilverlightWpf et Silverlight
Wpf et SilverlightSimon Robic
654 views24 Folien
Présentation espace rdv offre d'essai 1 mois von
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
295 views7 Folien

Destacado(20)

Presentación CITE von Liz Pagan
Presentación CITEPresentación CITE
Presentación CITE
Liz Pagan357 views
Présentation nouvelles technologies ec nantes von fpintodasilva
Présentation nouvelles technologies ec nantesPrésentation nouvelles technologies ec nantes
Présentation nouvelles technologies ec nantes
fpintodasilva1.2K views
Construisez des maisons 3 fois plus vite & moins cher von patrickserge
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
patrickserge1.8K views
Diallo GuinéE CIRAD 2010 von Mira Slavova
Diallo GuinéE CIRAD 2010Diallo GuinéE CIRAD 2010
Diallo GuinéE CIRAD 2010
Mira Slavova719 views
Wpf et Silverlight von Simon Robic
Wpf et SilverlightWpf et Silverlight
Wpf et Silverlight
Simon Robic654 views
Présentation espace rdv offre d'essai 1 mois von Julien Audran
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
Julien Audran295 views
D orchidees du vietnam von lyago
D orchidees du vietnamD orchidees du vietnam
D orchidees du vietnam
lyago505 views
Figures de la bande dessinée numérique von M@rsouin
Figures de la bande dessinée numériqueFigures de la bande dessinée numérique
Figures de la bande dessinée numérique
M@rsouin912 views
Presentación de Hacer Historia Consultores von Juan Carlos Lucas
Presentación de Hacer Historia ConsultoresPresentación de Hacer Historia Consultores
Presentación de Hacer Historia Consultores
Juan Carlos Lucas1.2K views
Perspectives Internationales : quel meilleur candidat? von Mélody Racine
Perspectives Internationales : quel meilleur candidat?Perspectives Internationales : quel meilleur candidat?
Perspectives Internationales : quel meilleur candidat?
Mélody Racine557 views
Trois petites histoires de dette avec notes de la présentation von Bruno MOREL
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
Bruno MOREL862 views
UCM Talentum Mons - Séance d'info 2015 von Miletcherk
UCM Talentum Mons - Séance d'info 2015UCM Talentum Mons - Séance d'info 2015
UCM Talentum Mons - Séance d'info 2015
Miletcherk690 views
amandine-la-tarte-a-la-citrouille-2 von Diya Lim
amandine-la-tarte-a-la-citrouille-2amandine-la-tarte-a-la-citrouille-2
amandine-la-tarte-a-la-citrouille-2
Diya Lim683 views
Pourquoi les consommateurs recommandent-ils leur opérateur mobile ? Évidence ... von M@rsouin
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@rsouin615 views

Similar a Mpinning Gyalg12(Analg)

Algoritmos von
AlgoritmosAlgoritmos
AlgoritmosGrabiel Alvarez
594 views53 Folien
Insercion directa von
Insercion directaInsercion directa
Insercion directaabelpit2
22.8K views11 Folien
Analisis Clase2 von
Analisis  Clase2Analisis  Clase2
Analisis Clase2luzenith_g
600 views35 Folien
Complejidad de Algoritmos von
Complejidad de AlgoritmosComplejidad de Algoritmos
Complejidad de AlgoritmosAlexis Jiménez Vejar
389 views23 Folien
jaisan von
jaisanjaisan
jaisanjai
1.7K views32 Folien
Números naturales von
Números naturalesNúmeros naturales
Números naturalesVictor Vazquez
945 views17 Folien

Similar a Mpinning Gyalg12(Analg)(20)

Insercion directa von abelpit2
Insercion directaInsercion directa
Insercion directa
abelpit222.8K views
Analisis Clase2 von luzenith_g
Analisis  Clase2Analisis  Clase2
Analisis Clase2
luzenith_g600 views
jaisan von jai
jaisanjaisan
jaisan
jai1.7K views
Manual de prácticas java 2015 von Ulises_312
Manual de prácticas java 2015Manual de prácticas java 2015
Manual de prácticas java 2015
Ulises_312795 views
Resolución de problemas con java von diegocastro1234
Resolución de problemas con javaResolución de problemas con java
Resolución de problemas con java
diegocastro12341.4K views
InduccióN.Ppt von cgrinblat
InduccióN.PptInduccióN.Ppt
InduccióN.Ppt
cgrinblat1.1K views
Analisis de algoritmos tarea 2 von Velmuz Buzz
Analisis de algoritmos tarea 2Analisis de algoritmos tarea 2
Analisis de algoritmos tarea 2
Velmuz Buzz351 views

Más de Spimy

Gonzalorojas 07 U M L, Casos De Uso ( Final) von
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
6.2K views41 Folien
Gonzalorojas 11 Uml, Diagrama De Colaboracion von
Gonzalorojas 11 Uml, Diagrama De ColaboracionGonzalorojas 11 Uml, Diagrama De Colaboracion
Gonzalorojas 11 Uml, Diagrama De ColaboracionSpimy
10.3K views17 Folien
Gonzalorojas 09 U M L, Diagrama De Clases von
Gonzalorojas 09  U M L,  Diagrama De  ClasesGonzalorojas 09  U M L,  Diagrama De  Clases
Gonzalorojas 09 U M L, Diagrama De ClasesSpimy
4.7K views22 Folien
Gonzalorojas 08 U M L, Diagramas De Secuencia von
Gonzalorojas 08  U M L,  Diagramas De  SecuenciaGonzalorojas 08  U M L,  Diagramas De  Secuencia
Gonzalorojas 08 U M L, Diagramas De SecuenciaSpimy
4K views7 Folien
Gonzalorojas 12 Uml, Patrones De Diseno von
Gonzalorojas 12 Uml, Patrones De DisenoGonzalorojas 12 Uml, Patrones De Diseno
Gonzalorojas 12 Uml, Patrones De DisenoSpimy
2.1K views26 Folien
Gonzalorojas 10 Uml, Esquema Conceptual von
Gonzalorojas 10 Uml, Esquema ConceptualGonzalorojas 10 Uml, Esquema Conceptual
Gonzalorojas 10 Uml, Esquema ConceptualSpimy
497 views8 Folien

Más de Spimy(7)

Gonzalorojas 07 U M L, Casos De Uso ( Final) von 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)
Spimy6.2K views
Gonzalorojas 11 Uml, Diagrama De Colaboracion von Spimy
Gonzalorojas 11 Uml, Diagrama De ColaboracionGonzalorojas 11 Uml, Diagrama De Colaboracion
Gonzalorojas 11 Uml, Diagrama De Colaboracion
Spimy10.3K views
Gonzalorojas 09 U M L, Diagrama De Clases von Spimy
Gonzalorojas 09  U M L,  Diagrama De  ClasesGonzalorojas 09  U M L,  Diagrama De  Clases
Gonzalorojas 09 U M L, Diagrama De Clases
Spimy4.7K views
Gonzalorojas 08 U M L, Diagramas De Secuencia von Spimy
Gonzalorojas 08  U M L,  Diagramas De  SecuenciaGonzalorojas 08  U M L,  Diagramas De  Secuencia
Gonzalorojas 08 U M L, Diagramas De Secuencia
Spimy4K views
Gonzalorojas 12 Uml, Patrones De Diseno von Spimy
Gonzalorojas 12 Uml, Patrones De DisenoGonzalorojas 12 Uml, Patrones De Diseno
Gonzalorojas 12 Uml, Patrones De Diseno
Spimy2.1K views
Gonzalorojas 10 Uml, Esquema Conceptual von Spimy
Gonzalorojas 10 Uml, Esquema ConceptualGonzalorojas 10 Uml, Esquema Conceptual
Gonzalorojas 10 Uml, Esquema Conceptual
Spimy497 views
Mpinning Gy Alg10(Busqueda) von Spimy
Mpinning Gy Alg10(Busqueda)Mpinning Gy Alg10(Busqueda)
Mpinning Gy Alg10(Busqueda)
Spimy329 views

Mpinning Gyalg12(Analg)

  • 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.