ROLANDO HERRERA
ITZEL MEDINA
MÉTODO DE CLASIFICACIÓN SHELL
DEFINICION:
Ordena una lista de n elementos aplicando el método de inserción, pero no a valores contiguos de la lista, sino a valores separados por un cierto incremento o distancia. Es decir, primero clasifica los elementos muy separados, después elementos más cercanos, y así sucesivamente hasta que finalmente se comparan elementos contiguos. Debido a esta característica, el método también se denomina clasificación por disminución del incremento.
OBJETIVO:
El objetivo de este método es que ordena subgrupos de elementos separados n del arreglo original. El valor dado a n es el llamado incremento.Después de que los primeros n subgrupos han sido ordenados (para este caso se utiliza la inserción directa, ya que es la forma mas común de hacerlo), se escoge un nuevo valor de n 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 n.
METODO DE CLASIFICACION SHELL:
La ordenación de Shell usa una secuencia, h1, h2, . . ., ht, conocida como la secuencia de incrementos. Al principio de todo proceso, se fija una secuencia decreciente de incrementos. Cualquier secuencia funcionará en tanto que empiece con un incremento grande, pero menor al tamaño del arreglo de los datos a ordenar, y que el último valor de dicha secuencia sea 1.
EJEMPLO EN CODIFICACION C++:
void shell(int n)
{
int i,j,m,k,x;
for(m=t;m>0;m--)
{
k=pow(2,m)-1;
for(i=k;i
x=arr;
j=i-k;
while(x
{
arr[j+k]=arr[j];
j-=k;
}
arr[j+k]=x;
1 comentario:
Muy bien
95
Publicar un comentario