Está en la página 1de 22

“ HOLA MUNDO ”

MÉTODOS DE ORDENAMIENTOS

MÉTODO POR INTERCAMBIO Ó


MÉTODO DE SHELL
Introducción
• Elmétodo Shell (Shell sort en inglés) es un
algoritmo de ordenamiento. El método se denomina
Shell en honor de su inventor Donald Shell.
Definición
Este método consiste en comparar los elementos en
saltos de varias posiciones e intercambiando los
valores cuando sea necesario; así los elementos
quedaran ordenadas más rápidamente.
• El Shell sort es una generalización del ordenamiento por
inserción, teniendo en cuenta dos observaciones:
• El ordenamiento por inserción es eficiente si la entrada
está "casi ordenada".
• El ordenamiento por inserción es ineficiente, en general,
porque mueve los valores sólo una posición cada vez.
SHELL VERSIÓN MEJORADA DE MÉTODO POR INSERCIÓN

• El algoritmo Shell sort mejora el ordenamiento por inserción


comparando elementos separados por un espacio de varias posiciones.
Esto permite que un elemento haga "pasos más grandes" hacia su
posición esperada.
• Los pasos múltiples sobre los datos se hacen con tamaños de espacio
cada vez más pequeños. El último paso del Shell sort es un simple
ordenamiento por inserción, pero para entonces, ya está garantizado
que los datos del vector están casi ordenados.
EJEMPLO

•Consideremos un arreglo que contenga diez elementos


5 8 2 1 6 7 9 3 4 3
PASO 1

• Se divide el arreglo en dos grupos (básicamente es hacer


comparaciones entre distancias equivalentes al total de números que
contiene el arreglo)
• En este caso el arreglo contiene 10 valores
• 10/2= 5
5 8 2 1 6 7 9 3 4 3

5 8 2 1 6 7 9 3 4 3
5 7
8 9
2 3
1 4
6 3
5 8 2 1 6 7 9 3 4 3
COMPARACIONES

5 8 2 1 6 7 9 3 4 3

5< 7= SI 1<4=SI
8< 9= SI 6<3=NO
2<3= SI
5 8 2 1 3 7 9 3 4 6
PASO 2
• Dividir el arreglo en comparaciones de menos saltos.
• Para esto los 2 grupos de 5 se vuelven a dividir entre dos
• 5/2= 2.5 se escoge el entero 2
5 8 2 1 3 7 9 3 4 6

5 8 2 1 3 7 9 3 4 6
5 8 2 1 3 7 9 3 4 6
5 8 25 8
1 3
5 8
7 9 8
3 4 6

5<2=NO 8<1=NO
5<3=NO 8<7=NO
5<9=SI 8<3=NO
9<4=NO
8<6=NO
2 1 3 7 5 3 4 6 9 8
•Se procede hacer nuevamente las
comparaciones hasta que no haya más
intercambios.
2 1 3 7 5 3 4 6 9 8
2 1 3 7 5 37 4
5 6 9 8

2<3=SI 1<7=SI
3<5=SI 7<3=NO
5<4=NO 7<6=NO
5<9=SI
7<8=SI
2 13 3 4 6 5 7 9 8
PASO 3

•Se hacen las comparaciones en saltos de uno.


•El programa finaliza cuando no haya más
intercambios en comparaciones de saltos de 1.
2 13 3 4 6 5 7 9 8
2 1
2 3 3 4 6 5
6 7 9 8

2<1=NO 6<5=NO
2<3=SI 6<7=SI
3<3=NO
(iguales) 7<9=SI
3<4=SI 9<8=NO
4<6=SI
1 2 3 3 4 5 6 7 8 9

GRACIAS

También podría gustarte