Вы находитесь на странице: 1из 2

ShellSort.

El mtodo de ordenacin shellsort es una versin mejorada del mtodo de


ordenacin por insercin directa, que se utiliza cuando el nmero de elementos
es grande. Este mtodo recibe su nombre gracias a su creados Donald L. Shell,
tambin se conoce con el nombre insercin con incrementos decrecientes.

En el mtodo de ordenacin por insercin directa, cada elemento se compara


con los elementos contiguos de su izquierda de uno por uno, para lograr su
ordenamiento; si por ejemplo, el elemento a comparar es el ms pequeo y se
encuentra en la ltima posicin del arreglo, hay que ejecutar muchas
comparaciones antes de colocar el elemento en su lugar de forma definitiva.

El mtodo de ordenacin shellsort mejora el ordenamiento por insercin


comparando elementos separados por un espacio de varias posiciones. Esto
permite que un elemento haga pasos ms grandes hacia la posicin que debe
ocupar. Los pasos mltiples sobre los elementos se hacen con tamaos de
espacio cada vez ms pequeos y el ltimo paso del mtodo es un simple
ordenamiento por insercin directa, pero para entonces, los elementos de
arreglo ya casi estn ordenados.

Para determinar el tamao de los incrementos (saltos) constantes, el primero


debe ser generado a partir del tamao del arreglo entre dos, obteniendo solo
su parte entera de la divisin o redondeando el resultado de la misma, y
posteriormente ir reduciendo a la mitad el incremento en cada repeticin,
hasta que el incremento sea un uno.

El procedimiento para aplicar el algoritmo de shellsort es el siguiente:

Generar un ciclo que se encargue de controlar el tamao que deben tener los
incrementos.
Este ciclo debe iniciar con la divisin del tamao del arreglo entre dos.
Mientras que el incremento sea mayor a cero debe continuar.
Y el cambio de incremento se elige de entre dos opciones: un uno o la divisin
del incremento anterior entre dos.

Un segundo ciclo dentro del anterior, controla el nmero de comparaciones que


se deben hacer segn el tamao del incremento.
El control de este ciclo debe iniciar con el incremento generado anteriormente.
Mientras el control del ciclo sea menor que el tamao del arreglo.
El control debe cambiar de uno en uno.
Un tercer ciclo dentro del segundo controla en que momento se detienen las
comparaciones o se hacen los posibles intercambios entre los elementos.
El control de este ciclo debe iniciar con el valor del ciclo anterior.
Mientras que el control sea mayor o igual al incremento del primer ciclo y el
elemento del arreglo de la posicin del control de este ciclo menos el
incremento, sea mayor que el elemento del arreglo de la posicin control de
este ciclo, realice los intercambios entre estas posiciones.
Y el control se decremente con el valor del incremento.

Вам также может понравиться