Welcome to Scribd!
Academic Documents
Professional Documents
Culture Documents
Hobbies & Crafts Documents
Personal Growth Documents
Tpampin1700. y Otros. Estructura de Datos y Algoritmos PDF
, ...,4, , tal que cada ele- mento a; tiene una clave asociada, clave[a,]. Se dice que existe una relacién de orden sobre las claves si para tres valores cualesquiera de la clave, clave(a)), clave[d,] y clave[a,] se satisface que: 1, clavefaj]clavelap] 2. Si clavelaj} im (2 +n-2) 252 CLASIFICACION EN MEMORIA PRINCIPAL, 2 y por tanto: Cope = RH?) ‘max 2 c) Caso promedio: las llaves iniciales estan aleatoriamente ordenadas. En el caso promedio las Ilaves del arreglo inicial estén ordenadas aleatoria- mente. Por ello para realizar el andlisis habré que hacer uso de argumentos probabi- Uisticos atendiendo a la comparacién (a{0]| 15} 60) 7) 4 3114/17] 20 | 22 2 46 59}15 460) 7.1 — a 3 2 7 : 40 15} 60] 7 | 1 a SSS SOS SS SS Figura 2.3 Busqueda dicotémica de la posicién para la insercion. Programa 2.2 Implementacién del algoritmo de insercién binaria. VAR i,t,m,L,R: Tipo_indice;x: Tipo_datos; BEGIN {* Li indice al elemento de la parte izquierda del subarray en el que se realiza la bisqueda en cada paso *) indice al elemento de la parte derecha del subarray en el gue se realiza la biisqueda en cada paso *) R WHILE LR DO m:=(L4R)DIV 2;METODOS DIRECTOS DE CLASIFICACION IF alm]0, el ntimero de movimientos promedio en cada pase i serd a M, (promi = Ini+y+1 Sumando para todos los pases obtenemos: Myrom = RY+ Lt ym i=l Finalmente, aproximando por la integral: prom Myrom = nye) +f Inxdx 162 CLASIFICACION EN MEMORIA PRINCIPAL 2.2.4 y tesolviendo j (Inx)dx = x(Inx-1)|} como ya se hizo con la Integral 2.2 se 1 obtiene: M = n(y+1)+2x(Inx- 1)[} =n(Inn +) prom En conclusi6n: Myrom= (Inn +) prom Este resultado permite concluir que el método de seleccién directa es preferible al de la insercidn directa ya que su ntimero de movimientos promedio es de orden Inn. Pero si se compara con la insercién binaria cabe preguntarse cudl es més ade- cuado ya que tiene un coste de orden n? para los movimientos pero logn para las comparaciones, mientras que en la seleccién directa es de orden n? para las compa- raciones y Inn para los movimientos. La decisi6n en esta situacion viene determi- nada por consideraciones de bajo nivel. En general, la implementacién de una comparacién tiene un coste inferior al de un movimiento. Por tanto, la seleccién directa seré la opcién a elegir en general, aunque la insercion es algo més répida cuando las Haves se clasifican predominantemente al principio. En algunas ocasiones puede sorprender que en el andlisis del caso promedio se obtenga un coste significativamente menor que en el peor cuando en este ultimo s6lo se realizan asignaciones de seleccién (x:=a[k]) hasta n/2, mientras que en el primero hay que analizar hasta n. Debe observarse que en el caso peor aunque sélo sea hasta n/2, se ejecutan todas, mientras que en el promedio aunque es hasta n s6lo se realizan segiin los argumentos probabilisticos. Por ello, el hecho de que sea hasta n/2 no implica una reducci6n sensible del coste computacional. CLASIFICACION POR INTERCAMBIO DIRECTO La idea bisica es comparar parejas de elementos contiguos e intercambiarlos si es necesario. En un primer paso se recorre el arreglo en sentido ascendente comen- zando por el principio, comparando parejas de Ilaves. Si el elemento anterior es mayor se intercambian, si es menor no, y en ambos casos se sigue avanzando. En conclusién, el algoritmo puede describirse de la siguiente forma: + Comparar pares de elementos contiguos. * Intercambiarlos si estén desordenados. La Figura 2.7 muestra cada paso hasta obtener la ordenacién final de un arreglo de siete elementos.METODOS DIRECTOS DE CLASIFICACION 63 1* pasada 6* pasada 1 iteracion jet j=4 25 556 8 8 8 8 a4) [a4] 5 5 5 5 5] 9 9 9 9 9 3 3 3 3 3 “AE 14 14] Giteraciones 23) [23 [23] faa}. [7 i) [7 7] [47] [2 I 5 5 [5a] 8 8 9] fol 3 3] on aE g : S| 2tpasada 14 14 [14 14 5 iteraciones 17 17 [17] 17 23 23 23 23 5 5 5 rs) [el 3 3] [3] 8] 3 pasada 9 9 9 14 14 14 4 iteraciones 7) [az 17 23) [23 23 3 3 3 3 31° 5 5 : 8 re} [el 8] 4° pasada doe eo) 9 [9] g 74) [74] [44] [94] 3 iteraciones w7| [a7] [a7] [az 23} ([23| [23] [23 3 3 [5 5 (8 8 | 5% pasada 9 9 74) [44] [44] 2 iteraciones 7] a7] az 23| [23) [23 Figura 2.7 Descripcién de la clasificacién por intercambio directo. Los elementos que se comparan en cada iteracién estén marcados por un rectangulo redondeado. Las aspas indican intercam- bios entre una iteracién y la siguiente y los elementos sombreados forman la parte ordenada del arreglo en cada momento.64 CLASIFICACION EN MEMORIA PRINCIPAL, Veamos detalladamente el primer pase. Se elige el a{1] (el 8) y se compara con el siguiente, a(2] (el 14), y como estén en orden (el primero es menor que el segundo) se dejan en sus respectivas posiciones. Seguidamente se compara a[2} (el 14) con el siguiente a{3] (el 5) y como entre ellos estén desordendados se intercam- bian. Asf sucesivamente se comparan a(3] (nuevamente el 14) con a[4] (el 9) y hay intercambio, a[4] (el 14) con a[5] (el 3) y hay intercambio, a(5] (otra vez él 14) con a[6] (el 23) y no hay intercambio y finalmente a(6] (el 23) con a(7} (el 17) y hay intercambio. La parte superior de la Figura 2.7 muestra este pase con detalle, donde se han marcado los elementos que se comparan en cada iteracién y mediante un aspa los intercambios entre iteraciones sucesivas. El Programa 2.4 implementa en Modula2 este algoritmo, que es conocido como método de la burbuja debido a que en cada pase van ascendiendo (0 como en este caso descendiendo) elementos hacia su posicién. Obsérvese, por ejemplo el niimero 14 que ha intervenido en varias comparaciones e intercambios. Si hubiese sido el mayor de todos, no habria parado de ‘burbujear’ hasta llegar al final que seria su posicién definitiva. En cada pasada, el método de la burbuja, garantiza que el mayor de los elementos se sittia en su posicién definitiva (la tltima). Programa 2.4 Implementacién del algoritmo de intercambio directo. i,j 1 Tipo_indice; aux : Tipo_datos; FOR i:=1 T0 n-1 DO 10 n-i DO (* Comparar elementos contiguos *) (* Intercambiar *) Anilisis de la clasificacién por intercambio directo Las operaciones més frecuentes caracteristicas del algoritmo son 1a compara- cién de elementos del arreglo (a(j]>a{j+1)), y los movimientos entre elementos del arreglo (aux:=a{j+i], alj+1]:=a(j) y a{j]:2aux), y como es habitual, el andlisis asint6tico requiere el célculo del nimero de comparaciones y de movimientos en los casos mejor, peor y promedio y no se consideran las operaciones auxiliares. También en este algoritmo, al igual que en el de selecci6n directa, el nimero de comparaciones es independiente del orden inicial de las Ilaves del arreglo ya queMETODOS DIRECTOS DE CLASIFICACION 65 siempre se recorre por completo la parte desordenada del arreglo para comparar las parejas de claves adyacentes. Para los movimientos, por el contrario, si se distinguen diferentes casos. Cuando el arreglo esté completamente ordenado no hay ningdn intercambio. Cuando esta ordenado en orden inverso se realizaré un intercambio con cada comparacién, es decir, se realizan todos los intercambios posibles. Asf el mejor caso para los movimientos se dard cuando el arreglo esté inicialmente ordenado y el peor caso cuando esté completamente desordenado (ordenado en sentido inverso) presentando, por tanto, un comportamiento natural. Atendiendo al Programa 2.4 el andlisis del algoritmo es el siguiente: - Comparaciones Es independientemente del orden inicial de las Ilaves. La comparaci6n (a{j]>a(J+1}) se realizard n—1 veces para el primer pase (/=2), n-2 en el segundo (i=3) y as{ sucesivamente hasta el ultimo pase en el que realiza una comparacin. Sumando todas ellas se observa que es una suma aritmética y por tanto, el niimero de comparaciones serd de orden n?. Ast: - Movimientos a) Mejor caso: las llaves estan inicialmente ordenadas. En esta situaci6n nunca se entra en el TF, por tanto el intercambio, formado por tres movimientos (aux:=a(j+1}, a{j+1]:=a[j] y a{j]:=aux), no se realiza nunca. Por tanto: b) Peor caso: las llaves iniciales estén completamente desordenadas. En este caso se realiza el intercambio siempre que se realiza la comparacién. Por lo que tenemos: Mmnax = 3C max cM Max = 3 c) Caso promedio: las llaves iniciales estén aleatoriamente ordenadas. En el caso promedio las llaves del arreglo inicial estén ordenadas aleatoria- mente y habré que utilizar argumentos probabilfsticos. El intercambio se realizaré