14
I. U. P. “Santiago Mariño” Programación No Numérica II Ing. Diógenes Rodríguez Métodos de ordenamiento Elaborado por: María Virginia Martínez Ing. De Sistemas

Metodos de ordenamiento

Embed Size (px)

Citation preview

Page 1: Metodos de ordenamiento

I. U. P. “Santiago Mariño”Programación No Numérica IIIng. Diógenes Rodríguez

Métodos de ordenamiento

Elaborado por:

María Virginia MartínezIng. De Sistemas

Page 2: Metodos de ordenamiento

Ordenamiento

Es la operación de arreglar los registros de una tabla en algún orden secuencial de acuerdo a un criterio de ordenamiento. El ordenamiento se efectúa con base en el valor de algún campo en un registro. El propósito principal de un ordenamiento es el de facilitar las búsquedas de los miembros del conjunto ordenado.

Existen diferentes maneras de ordenar un conjunto de elementos, a continuación se presentan algunas de ellas

Page 3: Metodos de ordenamiento

Método de ordenamiento Burbuja

Es uno de los métodos relativamente más sencillo e intuitivo, pero también resulta ser muy ineficiente. Se basa en la ordenación por cambio, y recibe su nombre de la semejanza con las burbujas de un depósito de agua donde cada burbuja busca su propio nivel. Ejemplo:

Considerando el siguiente arreglo: {9, 5, 11, 1, 7, 2}

Comparar el primer y segundo elemento, intercambiarlos si el primero es mayor que el segundo; luego se compara el primero con el tercero, intercambiándose en caso necesario, y el proceso se repite hasta llegar al último elemento. De este modo, tras la primera iteración la casilla primera conservara el elemento más pequeño de esa iteración.

Se repite el paso anterior, pero ahora con el segundo y tercero, en caso de ser necesario se intercambian, y así hasta llegar a comparar el segundo con el ultimo.

Page 4: Metodos de ordenamiento

Solución: 1ra Iteración.

{9, 5, 11, 1, 7, 2} =genera intercambio ya que 9 es mayor que 5. {5, 9, 11, 1, 7, 2}{5, 9, 11, 1, 7, 2} = no genera intercambio porque 5 es menor que 11{5, 9, 11, 1, 7, 2}= genera intercambio porque 5 es mayor que 1. {1, 9, 11, 5, 7, 2}{1, 9, 11, 5, 7, 2}= no genera intercambio{1, 9, 11, 5, 7, 2}= no genera intercambio. Termina iteración

2da. Iteración:

{1, 9, 11, 5, 7, 2}= no genera intercambio{1, 9, 11, 5, 7, 2}= genera intercambio {1, 5, 11, 9, 7, 2}{1, 5, 11, 9, 7, 2}= no genera intercambio{1, 5, 11, 9, 7, 2}= genera intercambio {1, 2, 11, 9, 7, 5}. Termina iteración.

3ra. Iteración:

{1, 2, 11, 9, 7, 5}= genera intercambio, {1, 2, 9, 11, 7, 5}{1, 2, 9, 11, 7, 5}= genera intercambio, {1, 2, 7, 11, 9, 5}{1, 2, 7, 11, 9, 5}= genera intercambio, {1, 2, 5, 11, 9, 7}. Termina iteración.

Page 5: Metodos de ordenamiento

4ta. Iteración:

{1, 2, 5, 11, 9, 7}= genera intercambio, {1, 2, 5, 9, 11, 7}{1, 2, 5, 9, 11, 7}= genera intercambio, {1, 2, 5, 7, 11, 9}. Termina iteración.

5ta. Iteración:

{1, 2, 5, 7, 11, 9}= genera intercambio, {1, 2, 5, 7, 9, 11}. Termina iteración.

Fin de proceso, se puede observar como el arreglo quedo ordenado de forma ascendente, es decir, de menor a mayor

1, 2, 5, 7, 9, 11

Page 6: Metodos de ordenamiento

Método de ordenamiento de Shell

El método Shell es una versión mejorada del método de inserción directa. Este método también se conoce con el nombre de inserción con incrementos crecientes. En el método de ordenación por inserción directa cada elemento se compara para su ubicación correcta en el arreglo, con los elementos que se encuentran en la parte izquierda del mismo. Si el elemento a insertar es más pequeño que el grupo de elementos que se encuentran a su izquierda, es necesario efectuar entonces varias comparaciones antes de su ubicación.

Page 7: Metodos de ordenamiento

Ejemplo: Se tiene el siguiente arreglo de 10 elementos

10, 8, 5, 15, 21, 3, 2, 7, 18, 14

Se divide en 5 subgrupos con un espacio de 5 posiciones entre si:

10 8 5 15 21 3 2 7 18 14

Comparando:10<3= No. (se intercambian)8<2= No. (se intercambian)5<7= Si. (se mantienen en su lugar)15<18= Si. (se mantienen en su lugar)21<14= No. (se intercambian)

Se ordena de nuevo el arreglo con los intercambios producidos.

3 2 5 15 14 10 8 7 18 21

Page 8: Metodos de ordenamiento

Si comparamos de nuevo a la misma distancia, resultara que todos son menores y no habrá ningún cambio. Entonces se deberá comparar nuevamente pero con un espacio de 3 posiciones:

3 2 5 15 14 10 8 7 18 21 3<5= Si. (se mantienen)

4 2 5 15 14 10 8 7 18 21 5<14= Si. (se mantienen)

3 2 5 15 14 10 8 7 18 21 14<8= No. (se intercambian)

5 2 5 15 8 10 14 7 18 21 14<18= Si. (se mantienen)

Se repite el proceso, esta vez a partir de la segunda posición:

6 2 5 15 8 10 14 7 18 21 2<15= Si

7 2 5 15 8 10 14 7 18 21 15<10= No

8 2 5 10 8 15 14 7 18 21 15<7= No

9 2 5 10 8 7 14 15 18 21 15<21= Si

Page 9: Metodos de ordenamiento

Se repite el ordenamiento con comparación de distancia a 3 posiciones a partir del primer elemento:

3 2 5 10 8 7 14 15 18 21 3<5= Si

4 2 5 10 8 7 14 15 18 21 5<8= Si

3 2 5 10 8 7 14 15 18 21 8<14= Si

3 2 5 10 8 7 14 15 18 21 14<18= Si

A partir del segundo elemento:

3 2 5 10 8 7 14 15 18 21 2<10= Si

5 2 5 10 8 7 14 15 18 21 10<7= No

6 2 5 7 8 10 14 15 18 21 10<15= Si

3 2 5 7 8 10 14 15 18 21 15<21= Si

Page 10: Metodos de ordenamiento

Ordenamiento con comparaciones de distancia 1:

3 2 5 7 8 10 14 15 18 21 3<2= No

2 3 5 7 8 10 14 15 18 21 3<5= Si

2 3 5 7 8 10 14 15 18 21 5<7= Si

4 3 5 7 8 10 14 15 18 21 7<8= Si

5 3 5 7 8 10 14 15 18 21 8<10= Si

6 3 5 7 8 10 14 15 18 21 10<14= Si

2 3 5 7 8 10 14 15 18 21 14<15= Si

7 3 5 7 8 10 14 15 18 21 15<18= Si

8 3 5 7 8 10 14 15 18 21 18<21= Si

El arreglo ya esta ordenado de menor a mayor

2 3 5 7 8 10 14 15 18 21

Page 11: Metodos de ordenamiento

Ordenamiento por Merge SortConocido como ordenamiento por mezcla, trabaja basado en la técnica divide y vencerás.

Si la longitud de la lista es 0 o 1, entonces la lista ya está ordenada. En otro caso:Dividir la lista desordenada en dos sublistas de aproximadamente la mitad del tamaño.Ordenar cada sublista recursivamente aplicando el ordenamiento por mezcla.Mezclar las dos sublistas en una sola lista ordenada.

Ejemplo:Dado el siguiente arreglo.

{2, 8, 5, 6, 4, 1, 3, 9}

Dividimos a dos mitades de aproximadamente igual tamaño:

{2, 8, 5, 6} {4, 1, 3, 9}

Luego volvemos a subdividir:

{2, 8} {5, 6} {4, 1} {3, 9}

Page 12: Metodos de ordenamiento

Se separa el arreglo anterior por cada elemento individualmente:

{2} {8} {5} {6} {4} {1} {3} {9}

Se comienza a ordenar

{2,8} {5, 6} {1, 4} {3, 9}

{2, 5, 6, 8} {1, 3, 4, 9}

{1, 2, 3, 4, 5, 6, 8, 9} La lista ya esta ordenada.

Page 13: Metodos de ordenamiento

Método de la Mochila:

Ejemplo.

El granjero López tiene 480 hectáreas en las que puede sembrar, ya se trigo o maíz. El calcula que tiene 800 horas de trabajo disponible durante la estación crucial del verano. Da 2 márgenes de utilidad y los requerimientos laborales mostrados en la siguiente tabla. ¿Cuántas hectáreas de cada uno debe plantar para maximizar su utilidad?, ¿Cuál es la utilidad máxima?

Maíz Trigo

Utilidad $40 $30

Trabajo 2 horas 1 horas 480 hectáreas

Tiempo 1 horas 1 horas 800 horas

Maíz: Utilidad= $40 por horas Trabajo= 2 hectáreas por horaTrigo: Utilidad= $30 por hora Trabajo= 1hectarea por hora

Page 14: Metodos de ordenamiento

1. Identificación de las variables XM= cantidad a producir de maíz por hectáreas.XT= cantidad a producir de trigo por hectáreas.

2. Función Objetivo: Z= 40XM + 30XT

3. Restricciones:2XM + 1XT≤ 480 hectáreas1XM + 1XT ≤ 800 hectáreasXM, XT ≥ 0

4. Sustituir cada uno de los términos de las restricciones con cero

a) 2XM +(0)= 480 XM= 480/2= 240

b)XM+(0)= 800 XM= 800

2(0)+ XT= 480XT= 480

(0) +XT=800XT=800