Algoritmo Básico

Si tienes curiosidad por conocer explora nuestra web

Algoritmo de Ordenamiento Shell

Post publicado por Admin , a las 13:44 , este tema tiene 0 comentarios
 
El ordenamiento Shell, denomino así por su desarrollador Donald Shell (1959), ordena una estructura de una manera similar a la del Bubble Sort, sin embargo no ordena elementos adyacentes sino que utiliza una segmentación entre los datos. Esta segmentación puede ser en cualquier tamaño de acuerdo a una secuencia de valores que empiezan con un valor grande y van disminuyendo hasta llegar al '1'.

El ShellSort ordena subgrupos de elementos separados K unidades (respecto de su posición en el arreglo) del arreglo o lista original. El valor K es llamado incremento.

Después de que los primeros K subgrupos han sido ordenados (generalmente se utiliza inserción directa), se escoge un nuevo valor de K más pequeño, y el arreglo es de nuevo partido entre el nuevo conjunto de subgrupos. Cada uno de los subgrupos mayores es ordenado y el proceso se repite de nuevo con un valor más pequeño de K, como en la grafica de arriba.

A continuación el algoritmo de ordenamiento por el método shell en java.

int[] ShellSort(int[] array){
    int gap = array.length / 2;
    while (gap > 0) {
        for (int i = 0; i < array.length - gap; i++) {
            int j = i + gap;
            int tmp = array[j];
            while (j >= gap && tmp > array[j - gap]) {//tmp < array[j-gap] otro orden
                array[j] = array[j - gap];
                j -= gap;
            }
            array[j] = tmp;
        }
        if (gap == 2) {
            gap = 1;
        }else{
            gap /= 2.2;
        }
    }   
    return array;
}
Algoritmo de Ordenamiento Shell
Algoritmo de Ordenamiento Shell - escrito por Admin , publicado en 13:44, categorizado como Ordenamiento . y tiene 0 comentarios
No comment Add a comment
Copyright © 2015 Algoritmo Básico Todos los derechos reservados.
Si te gusta nuestra web, no te olvides de compartir nuestros post.

Desarrollado por Algoritmo Básico con la tecnología Blogger.