Dise - PowerPoint PPT Presentation

About This Presentation
Title:

Dise

Description:

Dise o y an lisis de algoritmos Clasificaci n II Temario Clasificaci n Ordenamientos masivos Ej:Merge sort Medios masivos, Merge sort y su an lisis Los ... – PowerPoint PPT presentation

Number of Views:30
Avg rating:3.0/5.0
Slides: 14
Provided by: Erida4
Category:
Tags: dise | merge | sort

less

Transcript and Presenter's Notes

Title: Dise


1
Diseño y análisis de algoritmos Clasificación II
2
Temario
  • Clasificación
  • Ordenamientos masivos
  • EjMerge sort

3
Clasificació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

4
Clasificació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

5
Clasificació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
6
Clasificació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.

7
Clasificació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.

8
Clasificació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
9
Clasificació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.

10
Clasificació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

11
Clasificació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.

12
Clasificació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
13
Procedure 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
Write a Comment
User Comments (0)
About PowerShow.com