Heap Sort (Monticulo)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | /* ORDENACIÓN POR EL MÉTODO HEAPSORT > INSERCIÓN INSERTAMONTICULO(A,N) {El algoritmo inserta los elementos en un montÃÂÂculo representado como arreglo. A es un arreglo de N elementos} {I, K y AUX son variables de tipo entero. BAND es una variable de tipo booleano} Repetir con I desde 2 hasta N Hacer K ? I y BAND ? VERDADERO 1.1 Repetir mientras (K > 1) y (BAND = VERDADERO) Hacer BAND ? FALSO 1.1.1 Si A[K] > A[parte entera(K entre 2)] entonces Hacer AUX ? A[parte entera(K entre 2)] A[parte entera(K entre 2)] ? A[K] A[K] ? AUX K ? parte entera(K entre 2) BAND ? VERDADERO 1.1.2 {Fin del condicional del paso 1.1.1} 1.2 {Fin del condicional del paso 1.1} 2. {Fin del ciclo del paso 1} ORDENACIÓN POR EL MÉTODO HEAPSORT > ELIMINACION ELIMINAMONTICULO(A,N) {El algoritmo elimina la raÃÂÂz del montÃÂÂculo en forma repetida. A es un arreglo de N elementos} {I, AUX, IZQ, DER, K y AP son variables de tipo entero} Repetir con I desde N hasta 2 Hacer AUX ? A[I], A[I] ? A[1], IZQ ? 2, DER ? 3 y K ? 1 1.1 Repetir mientras (IZQ < I) Hacer MAYOR ? A[IZQ] y AP ? IZQ 1.1.1 Si (MAYOR < A[DER]) Y (DER ? 1) entonces Hacer MAYOR ? A[DER] y AP ? DER 1.1.2 {Fin del condicional del paso 1.1.1} 1.1.3 Si AUX < MAYOR entonces Hacer A[K] ? A[AP] 1.1.4 {Fin del condicional del paso 1.1.3} Hacer K ? AP, IZQ ? K * 2 y DER ? IZQ + 1 1.2 {Fin del condicional del paso 1.1} Hacer A[K] ? AUX 2. {Fin del ciclo del paso 1} ORDENACIÓN POR EL MÉTODO HEAPSORT El proceso de ordenación por el método del montÃÂÂculo consta de dos partes:-Construir el montÃÂÂculo. -Eliminar repetidamente la raÃÂÂz del montÃÂÂculo. --El algoritmo es el siguiente: MONTICULO(A,N) {El algoritmo ordena los elementos del arreglo utilizando el método del montÃÂÂculo. A es un arreglo de N elementos} Llamar al algoritmo INSERTAMONTICULO con A y N. Llamar al algoritmo ELIMINAMONTICULO con A y N. */ |
Arreglo original
140, 10, 5, 9, 16, 8, 0, 1, 52
Arreglo ordenado
0, 1, 5, 8, 9, 10, 16, 52, 140