Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
28 Mayo 1988
B?
continuamos
Digamos que el mejor programador de la chuapep, o kakaztecas se
le ocurre un super programa que requiere 2n2 instrucciones para ordenar n nmeros y su jefe le regala la computadora A, decide utilizar le mtodo de las cartas inserta y ordena
continuamos
Digamos que el mejor programador de la chuapep, o kakaztecas se
le ocurre un super programa que requiere 2n2 instrucciones para ordenar n nmeros y su jefe le regala la computadora A, decide utilizar le mtodo de las cartas inserta y ordena
Y al distinguidsimo programador de la FCC, ferviente simpatizante
de #YoSoy132, su jefe le regala la computadora B y se pone a darle duro y se le ocurre un super programa con un compilador poco eciente y que requiere 50nlogn instrucciones para ordenar n nmeros, decide utilizar el mtodo de mezcla y ordena.
continuamos
Digamos que el mejor programador de la chuapep, o kakaztecas se
le ocurre un super programa que requiere 2n2 instrucciones para ordenar n nmeros y su jefe le regala la computadora A, decide utilizar le mtodo de las cartas inserta y ordena
Y al distinguidsimo programador de la FCC, ferviente simpatizante
de #YoSoy132, su jefe le regala la computadora B y se pone a darle duro y se le ocurre un super programa con un compilador poco eciente y que requiere 50nlogn instrucciones para ordenar n nmeros, decide utilizar el mtodo de mezcla y ordena.
Qu programa se ejecuta ms rpido???? Si usan la misma
cantidad de datos.
continuamos
Digamos que el mejor programador de la chuapep, o kakaztecas se
le ocurre un super programa que requiere 2n2 instrucciones para ordenar n nmeros y su jefe le regala la computadora A, decide utilizar le mtodo de las cartas inserta y ordena
Y al distinguidsimo programador de la FCC, ferviente simpatizante
de #YoSoy132, su jefe le regala la computadora B y se pone a darle duro y se le ocurre un super programa con un compilador poco eciente y que requiere 50nlogn instrucciones para ordenar n nmeros, decide utilizar el mtodo de mezcla y ordena.
Qu programa se ejecuta ms rpido???? Si usan la misma
cantidad de datos.
continuamos
Digamos que el mejor programador de la chuapep, o kakaztecas se
le ocurre un super programa que requiere 2n2 instrucciones para ordenar n nmeros y su jefe le regala la computadora A, decide utilizar le mtodo de las cartas inserta y ordena
Y al distinguidsimo programador de la FCC, ferviente simpatizante
de #YoSoy132, su jefe le regala la computadora B y se pone a darle duro y se le ocurre un super programa con un compilador poco eciente y que requiere 50nlogn instrucciones para ordenar n nmeros, decide utilizar el mtodo de mezcla y ordena.
Qu programa se ejecuta ms rpido???? Si usan la misma
continuamos
Digamos que el mejor programador de la chuapep, o kakaztecas se
le ocurre un super programa que requiere 2n2 instrucciones para ordenar n nmeros y su jefe le regala la computadora A, decide utilizar le mtodo de las cartas inserta y ordena
Y al distinguidsimo programador de la FCC, ferviente simpatizante
de #YoSoy132, su jefe le regala la computadora B y se pone a darle duro y se le ocurre un super programa con un compilador poco eciente y que requiere 50nlogn instrucciones para ordenar n nmeros, decide utilizar el mtodo de mezcla y ordena.
Qu programa se ejecuta ms rpido???? Si usan la misma
Captulo II
Ordenar por Insercin (Insertion Sort)
4 of 12 /IMAGENES/EscudoNegro
Algoritmo
Entrada: Secuencia de n nmeros (a1 , a2 , a3 , ..., an ). Salida: Una permutacin de salida (a1 , a2 , a3 , ..., an ), donde se cumple que (a1 a2 , a3 , ..., an ).
5 of 12 /IMAGENES/EscudoNegro
operacin
Arreglo A=(5,2,4,6,1,3)
6 of 12 /IMAGENES/EscudoNegro
7 of 12 /IMAGENES/EscudoNegro
8 of 12
A[1..j 1], A[1..j 2], A[1..j 3] esto se garantiza con el ciclo for (lineas de la 4 a la 7 y en la lnea 8 es cuando se inserta. No analizaremos el caso del ciclo while.
Terminacin cuando j excede a n j = n + 1 y en este caso el
9 of 12 /IMAGENES/EscudoNegro
10 of 12
Depender el tamao del arreglo para determinar si se ejecutar de manera rpida? Vamos al pizarrn.
10 of 12
Entonces
11 of 12
Anlisis
Recuerda que el tiempo que toma este algortimo es de orden n2
12 of 12
Anlisis
Recuerda que el tiempo que toma este algortimo es de orden n2 En trminos de entrada y tiempo , Cul consideras que es el peor caso para nuestro algoritmo?
12 of 12
Anlisis
Recuerda que el tiempo que toma este algortimo es de orden n2 En trminos de entrada y tiempo , Cul consideras que es el peor caso para nuestro algoritmo? Cuando las cartas estn completamente desordenadas
12 of 12
Anlisis
Recuerda que el tiempo que toma este algortimo es de orden n2 En trminos de entrada y tiempo , Cul consideras que es el peor caso para nuestro algoritmo? Cuando las cartas estn completamente desordenadas Cul ser el caso promedio ?
12 of 12
Anlisis
Recuerda que el tiempo que toma este algortimo es de orden n2 En trminos de entrada y tiempo , Cul consideras que es el peor caso para nuestro algoritmo? Cuando las cartas estn completamente desordenadas Cul ser el caso promedio ? Cuando las cartas medianamente desordenadas.
12 of 12
Anlisis
Recuerda que el tiempo que toma este algortimo es de orden n2 En trminos de entrada y tiempo , Cul consideras que es el peor caso para nuestro algoritmo? Cuando las cartas estn completamente desordenadas Cul ser el caso promedio ? Cuando las cartas medianamente desordenadas. Cul es el mejor caso?
12 of 12
Anlisis
Recuerda que el tiempo que toma este algortimo es de orden n2 En trminos de entrada y tiempo , Cul consideras que es el peor caso para nuestro algoritmo? Cuando las cartas estn completamente desordenadas Cul ser el caso promedio ? Cuando las cartas medianamente desordenadas. Cul es el mejor caso? Todas las cartas estn ordenadas.
12 of 12
frecuencia. Buscar en una base de datos elpeor caso ocurre cuando se tiene que buscar en la base completa por un objeto que no est.
El caso promedio por lo general es tan malo como le peor caso.
suponga cuando se tiene que buscar en una mitad del arreglo, se mantiene el trmino cuadrtico.
13 of 12
Diseo
Diseo de Algoritmos Para el caso del algoritmo Ordenamiento por insercin utilizamos un tcnica de diseo incremental. Recurdese que el proceso es tomar una carta e insertarla en su posicin.
14 of 12
Mezcla y Ordena
Como no me caben todas las cartas en la mano entonces: Asumimos que un problema se puede dividir en varios subproblemas que son similares al original pero de menor tamao. Los resuelve cada uno para al nal combinar las soluciones y crear la solucin del problema. Veamos este video merge sort, bscalo en YouTube Algorithms #4 Merge Sort
15 of 12
16 of 12
Mezcla y Ordena
Como concibes ordenar siguiendo est idea?
17 of 12
Mezcla y Ordena
Como concibes ordenar siguiendo est idea? Disearemos un algoritmo llamado Mezcla y Ordena el cual podramos decir que sigue este paradigma, veamos como podemos denirlo:
17 of 12
Mezcla y Ordena
Como concibes ordenar siguiendo est idea? Disearemos un algoritmo llamado Mezcla y Ordena el cual podramos decir que sigue este paradigma, veamos como podemos denirlo: DIVIDE: Divide una secuencia de n elementos en dos subsecuencias de n/2 elementos.
17 of 12
Mezcla y Ordena
Como concibes ordenar siguiendo est idea? Disearemos un algoritmo llamado Mezcla y Ordena el cual podramos decir que sigue este paradigma, veamos como podemos denirlo: DIVIDE: Divide una secuencia de n elementos en dos subsecuencias de n/2 elementos. CONQUISTA: Ordena las dos subsecuencias de manera recursiva utilizando Mezcla y Ordena.
17 of 12
Mezcla y Ordena
Como concibes ordenar siguiendo est idea? Disearemos un algoritmo llamado Mezcla y Ordena el cual podramos decir que sigue este paradigma, veamos como podemos denirlo: DIVIDE: Divide una secuencia de n elementos en dos subsecuencias de n/2 elementos. CONQUISTA: Ordena las dos subsecuencias de manera recursiva utilizando Mezcla y Ordena. COMBINA Las subsecuencias ordenadas deben mezclarse(procedimiento de mezcla) para obtener la respuesta deseada.
17 of 12
Mezcla
El procedimiento de Mezcla va a mezclar las dos secuencias ordenadas en el paso de combinar. Este procedimiento auxiliar deber ser invocado con los siguiente parmetros Mezcla(A,p,q,r) donde:
A es el arreglo. p,q y r son ndices del arreglo de manera que cumplan p q < r .
Los subarreglos son A[p ..q ], A[q + 1..r ] los cuales se ordenan por separado.
Producen un arreglo de salida A[p ..r ].
18 of 12
Seudocdigo Mezcla
Colocamos un centinela al nal de la pila de cartas paras asegurar llegar al nal y que es el mayor valor.
19 of 12
Detalle Mezcla
20 of 12
Detalle Mezcla
21 of 12
22 of 12
23 of 12
24 of 12
Arbol de Recursin
26 of 12
27 of 12
27 of 12
sigue.
27 of 12
sigue.
El nivel i por debajo de la raz tendr 2i nodos y cada uno
contribuyendo con c (n/2i ), de manera que el nivel i debajo d ela raz tiene un costo de 2i c (n/2i ) = cn.
27 of 12
sigue.
El nivel i por debajo de la raz tendr 2i nodos y cada uno
contribuyendo con c (n/2i ), de manera que el nivel i debajo d ela raz tiene un costo de 2i c (n/2i ) = cn.
El ltimo nivel tendr n nodos y cada uno contribuye con un costo
27 of 12
sigue.
El nivel i por debajo de la raz tendr 2i nodos y cada uno
contribuyendo con c (n/2i ), de manera que el nivel i debajo d ela raz tiene un costo de 2i c (n/2i ) = cn.
El ltimo nivel tendr n nodos y cada uno contribuye con un costo
nmero de hojas del nivel y corresponde al tamao de la entrada, ms el primer nivel o raz por lo que tendremos logn + 1.
27 of 12
28 of 12
28 of 12
de 2.
28 of 12
de 2.
De acuerdo a nuestro rbol de recurrencia tenemos que el costo de
cada nivel es cn y tenemos logn + 1 niveles ms el nivel nal esto nos da un costo de cn(logn + 1) = cnlogn + cn, asumimos que c = 1y por inspeccin comprobamios que el orden lo determina el trmino (nlogn)
28 of 12