1. 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
2. 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
3. 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.
4. 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.
5. 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
6. 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.
7. 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
8. 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)
3 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)
3 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:
3 2 5 15 8 10 14 7 18 21 2<15= Si
3 2 5 15 8 10 14 7 18 21 15<10= No
3 2 5 10 8 15 14 7 18 21 15<7= No
3 2 5 10 8 7 14 15 18 21 15<21= Si
9. 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
3 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
3 2 5 10 8 7 14 15 18 21 10<7= No
3 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
10. 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
2 3 5 7 8 10 14 15 18 21 7<8= Si
2 3 5 7 8 10 14 15 18 21 8<10= Si
2 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
2 3 5 7 8 10 14 15 18 21 15<18= Si
2 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
11. Ordenamiento por Merge Sort
Conocido 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}
12. 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.
13. 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 hora
Trigo: Utilidad= $30 por hora Trabajo= 1hectarea por hora
14. 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áreas
1XM + 1XT ≤ 800 hectáreas
XM, 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= 480
XT= 480
(0) +XT=800
XT=800