Title: Dise
1Diseño y análisis de algoritmos Clasificación II
2Temario
- Clasificación
- Ordenamientos masivos
- EjMerge sort
3Clasificación
Medios masivos, Merge sort y su análisis
- Los algoritmos anteriores son inaplicables, si la
cantidad de datos por ordenar - no pueden ser procesados en memoria principal
(directos) - Se se requieren métodos indirectos para tratar
con muchos datos, Ej dispositivos perifericos
secuenciales - Cintas
- Discos magnéticos
- Esta impone fuertes restricciones, lo que lleva a
usar técnica de mezcla, (merge) - Alg mezcla1.
- Dividir la secuencia a en dos mitades
denominadas b y c - Mezcalr b y c cambiando cada elemento en pares
ordenados - Llamar a la secuencia mezclada y repetir 1 y 2,
esta vez está combinando los pares ordenados - en cuádrupolos ordenados,.
- Repetir 1,2,3 combinando los cuádruplos en
octetos y seguir haciendo esto - (cada vez duplicando los longitudes de las
subsecuencias combinadas) - Fin Secuencia cuando esta está completamente
ordenada
4Clasificación
Medios masivos, Merge sort y su analisis
- Ejemplo Dada la siguiente secuencia
- 44 55 12 42 94 18 06 67
- Paso 1 2 secuencias
- 44 55 12 42
- 94 18 06 67
- Resultado 44 94 18 55 06 12 42 67
- mezcla, (merge), de los componentes individuales
da - 44 94 18 55
- 06 12 42 67
- Resultado 06 12 44 94 18 42 55 67
- Repitiendo otra vez por la mitad y combinando
los pares ordenados - 06 12 44 94
- 18 42 55 67
- finalmente la tercera operación de división y
MEZCLA, produce, al fin el resultado deseado - 06 12 18 44 42 55 67 94
5Clasificación
Medios masivos, Merge sort y su analisis
Def fase cada operación que trata el conjunto
completo de datos Def pase o etapa el proceso
más corto que, por repetición,constituye el
proceso de clasificación. El ejemplo anterior
tuvo 3 pases, cada uno consistente en una fase,
de división y una fase de combinación. Para
lograr la clasificación se requiere de tres
cintas Este proceso se puede llamar mezcla de
tres cintas.
Cinta b
Fase de división
Fase de combinación
Cinta a
Cinta a
Cinta c
6Clasificación
Medios masivos, Merge sort y su analisis
- El proceso anterior puede ser mejorado
- Las fases de división no contribuyen,
directamente, en la clasificación pues de
ninguna manera, permutan los elementos. se puede
pensar que son improductivas, pese que
constituyen la MITAD de todas las operaciones de
copiado. - Si se combinara la fase de división, con la
mezcla pueden eliminarse por completo las
operaciones de división. - En vez de combinar en una sola secuencia,el
resultado del proceso se redistribuye, al
instante en DOS CINTAS, que constituyen las
fuentes del próximo pase. - A diferencia del algoritmo anterior, (mezcla de
dos fases), este algoritmo se conoce como - Mezcla de UNA sola fase o mezcla BALANCEADA.
- Es mejor, (en VELOCIDAD), porque sólo ejecuta la
mitad de las operaciones de copiado, aunque se
necesitan 4 cintas - Para ejemplificar se usará una ED. Arreglo, pero
se trabajaran en forma estrictamente secuencial,
como si fueran archivos. - Existe una fuerte dependencia del algoritmo con
la estructura de datos usada. -
7Clasificación
Medios masivos, Merge sort y su analisis
- La forma general de la fase combinada
mezcla-divisón puede ilustrarse con el siguiente
diagrama
fuente
destino
j
i
k
l
mezcla
división
- El destino de los elementos combinados se cambia
desde el comienzo del arreglo de destino - al final del arreglo, después de cada par
ordenado en la primera fase, después de cada
cuádruplo ordenado en la segunda fase, etc. de
esta forma se llenan uniformemente las dos
secuencias de destino, representadas por los dos
extremos de un solo arreglo. - Luego de cada pase, los dos arreglos intercambian
su papel la fuente se convierte en un nuevo
destino y viceversa.
8Clasificación
Medios masivos, Merge sort y su analisis
- Una simplificación final del programa puede
lograrse uniendo los dos arreglos conceptualmente
distintos en uno sólo de tamaño duplicado. - Así pues los datos pueden representarse
ED aARRAY1 .. 2n OF item
- Un ejemplo de cómo ordena este algoritmo
Datos originales en la primera parte del arreglo
(o primer arreglo simulado)
Agrupación de a pares en cada extremo
Agrupación de a cuádruplos en cada extremo
Ordenamiento final
9Clasificación
Medios masivos, Merge sort y su analisis
Procedure mergesort (nivel 1) VAR i,j,k,Lindex
up BOOLEAN p INTEGER BEGIN Up TRUE p
1 REPEAT inicializar variables índice IF up
THEN i 1 jn kn1 ELSE
k1Lnin1j2n END hacer la mezcla
de las fuente i y j hacia los destinos k y
Lgrupos largo p up not(UP) p2p UNTIL
pn END
- Los datos estan en el rango 1..n inicialmente,
luego de acuerdo con la variable up se alojan - entre n1..2n alternadamente.
- P corresponde al largo de las subsecuencias a
mezclar.
10Clasificación
Medios masivos, Merge sort y su analisis
(nivel 2, refinamiento ) h1mn / m número
de elementos por mezclar / REPEAT
qprpmm-2p mezclar q elementos de las
fuentes i, con r elementos de la fuente
procedentes de la fuente j, el índice destino se
aumenta en h. h -h k se intercambia con L
UNTIL m0
- Se Introducen h y m que corresponden a la
inicialización de variables índice del
refinamiento anterior. - Se debe tener en cuenta que el pase de
combinación que incluye n elementos es también
una secuencia de combinaciones de grupos de largo
p . Entre cada mezcla parcial de ese tipo, el
destino se cambia del extremo inferior al
superior del arreglo de destino o a la inversa
para garantizar una distribución igual en ambos
extremos. - Si el destino de los elementos es el extremo
inferior del arreglo,entonces el índice de
destino es k, que se incrementa tras cada
movimiento de un elemento. Si los elementos deben
moverse al extremo superior del arreglo de
destino, el índice destino es L, que se
decrementa con cada movimiento. - Para simplificar se usa siempre k, cambiando los
valores con L. El incremento es positivo o
negativo de acuedo con h
11Clasificación
Medios masivos, Merge sort y su analisis
(nivel 3, refinamiento ) WHILE (q ltgt0) AND (rltgt0)
DO IF ai lt aj THEN mover una elemento de
la fuente i, al destino k, avanzar i y k
qq-1 ELSE mover una elemento de la
fuente j, al destino k, avanzar j y k rr-1
END END Copiar extremo de la secuencia i,
copiar extremo de la secuencia j
- En el paso de refinamiento final, hay que
formular la verdadera proposición de la mezcla,
se debe tener presente que el cabo (extremo) de
una subsecuencia, que no queda vacia luego de una
mezcla, debe anexarse a la secuencia de salida
simples operaciones de copiado.
12Clasificación
Medios masivos, Merge sort y su analisis
Antes de describir el programa completo, se puede
eliminar la restricción de que n debe ser una
potencia d 2. Estas 3 asignaciones (ya
vistas) qprpmm-2p se pueden
reemplazar por IF m gtp THEN qp ELSE qm
END mm-q IF m gtp THEN rp ELSE rm
END mm-r Finalmente, para GARANTIZAR, el
término del algoritmo, la condición p n, que
controla la REPETICION EXTERNA , se cambia or
pgtn. Con todo este refinamiento sucesivo, se
tiene el programa Straight merge o mezcla
directa. VER FIGURA . Cada paso duplica p y la
clasificación se termina cuando pgtn por lo cual
incluye log n pases. Por definición en cada pase
se copia el número completo n de elementos, en
consecuencia se realizan nlog n operaciones. El
orden del algoritmo es
13Procedure mergesort VAR i,j,k,L,tindex up
BOOLEAN h,m,p,q,r INTEGER BEGIN Up TRUE p
1 REPEAT h1mn IF up THEN i 1 jn
kn1 ELSE k1Lnin1j2n END
REPEAT qprpmm-2p (se puede
generalizar con las cuatro instrucciones de la
diapo anterior) WHILE (q ltgt0) AND (rltgt0) DO
IF ai lt aj THEN ak ai
ii1kkhqq-1 ELSE ak
aj jj-1kkhrr-1 END END
WHILE (rgt0) DO ak aj jj-1kkhrr
-1 END WHILE (qgt0) DO ak ai
ii1kkhqq-1 END h
-htkkLLt UNTIL m0 up not(up)
p2p UNTIL pgtn IF NOT UP THEN FOR i1
TO n DO aiain END END