Algoritmo Shell

Páginas: 2 (279 palabras) Publicado: 20 de octubre de 2012
ALGORITMO SHELL
Ordenamiento por intervalos decrecientes, nombrado así debido a su inventor Donald Shell, este algoritmo ordena subgrupos de elementos separados K unidades respecto de su posición enel arreglo. El valor K es llamado intervalo. Después de que los primeros K subgrupos fueron ordenados generalmente utilizando Inserción Directa, se escoge un nuevo valor de K más pequeño, y elarreglo 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.
Cuando el incremento toma unvalor de 1, todos los elementos pasan a formar parte del subgrupo y se aplica inserción directa. El método se basa en tomar como salto al principio N/2, siendo N el número de elementos, y luego se vareduciendo a la mitad en cada repetición hasta lograr un valor de 1.

PSEUDOCÓDIGO

ALGORITMO SHELL
INICIO
ENTERO INTERVALO, K, J, I, AUX
INTERVALO ← N DIV 2MIENTRAS (INTERVALO > 0)
{
PARA (I ← INTERVALO – 1, HASTA ← N, I ← I + 1)
{
J ←I - INTERVALO
MIENTRAS (J >= 0){
K ← J + INTERVALO
SI (VECTOR [K] <= VECTOR [J])
{
AUX ←VECTOR [J]
VECTOR [J] ←VECTOR [K]
VECTOR [K] ← AUX
}
SI NO
{
J ← 0
}
J ← J - INTERVALO}
}
INTERVALO ← INTERVALO DIV 2
}
}

CÓDIGO EN C++

Void shell (void)
{
Int intervalo, k, j, i, aux;
Intervalo = RANGO / 2;
While (intervalo> 0)
{
For (i = intervalo - 1; i < RANGO; i++)
{
j = i - intervalo;
While (j >= 0)...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • SHELL
  • Shell
  • Shell
  • Shell
  • Shell
  • Shell
  • Shell
  • shell

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS