0% encontró este documento útil (0 votos)
72 vistas7 páginas

Algoritmo Shell Sort

El algoritmo Shell Sort ordena un arreglo mediante la comparación y posible intercambio de elementos no adyacentes, utilizando saltos que se reducen gradualmente hasta comparar elementos adyacentes, mejorando el tiempo de ordenamiento cuadrático de otros algoritmos como el burbuja.

Cargado por

Cristo Carrillo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
72 vistas7 páginas

Algoritmo Shell Sort

El algoritmo Shell Sort ordena un arreglo mediante la comparación y posible intercambio de elementos no adyacentes, utilizando saltos que se reducen gradualmente hasta comparar elementos adyacentes, mejorando el tiempo de ordenamiento cuadrático de otros algoritmos como el burbuja.

Cargado por

Cristo Carrillo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Algoritmo de Ordenamiento

Shell Sort
Yurgen Prado Lopez 191738
Luis Miguel Lozano Rodríguez 191478
Shell Sort
• El método de
ordenación Shell debe
su nombre a su inventor,
Donald Shell, y fue uno
de los primeros
algoritmos de
ordenamiento en romper
la barrera del tiempo
cuadrático.
Ejemplo
Existen varias formas de calcular el intervalo, lo cual puede
mejorar la efectividad del algoritmo.
Algoritmo de Shell Sort en Java
package analisisyalgoritmos; while(j>0){
import java.util.Scanner; if(Arreglo[j]>=Arreglo[j+incremento]){
public class AnalisisYAlgoritmos { aux = Arreglo[j];
public static void main (String[] args) { Arreglo[j] = Arreglo[j+incremento];
Arreglo[j+incremento] = aux;
Scanner teclado = new Scanner(System.in); }
int Arreglo[]=new int [20]; else{
int numero,i,j,k,incremento,aux; j=0;
System.out.print("Ingrese dimension del }
arreglo: "); j=j-incremento;
numero=teclado.nextInt(); }
for(i=1;i<=numero;i++){ }
System.out.print("A["+i+"]= "); incremento=incremento/2;
Arreglo[i]=teclado.nextInt(); }
} System.out.println("EL ARREGLO
incremento=numero/2; ORDENADO");
while(incremento>0){ for(i=1;i<=numero;i++){
for(i=incremento+1;i<=numero;i++){ System.out.print(" "+Arreglo[i]);
j=i-incremento; }
System.out.println("");
}
}
• Cualquier algoritmo de ordenación que
intercambia elementos adyacentes (como los
algoritmos burbuja, selección o inserción)
tiene un tiempo promedio de ejecución de
orden cuadrático (n2).
• El método Shell mejora este tiempo
comparando cada elemento con el que está a
un cierto número de posiciones llamado salto,
en lugar de compararlo con el que está justo a
su lado. Este salto es constante, y su valor
inicial es N/2

También podría gustarte