martes, 18 de septiembre de 2018

Método del shell

import java.util.*;
public class Shell {

public static void main(String a[])
{
int arr[];
int c;
Scanner sc=new Scanner(System.in);
arr=new int[6];
for(c=0;c<6;c++)
{
System.out.println("Introduce el valor: "+(c+1));
arr[c]=sc.nextInt();

}

System.out.println("Longitud="+arr.length);

shell(arr);
for(c=0;c<6;c++)
{
System.out.println("Valor "+(c+1)+" "+arr[c]);


}
}

public static void shell(int A[]){
   int salto, aux, i;
   boolean cambios;
   for(salto=A.length/2; salto!=0; salto/=2){
           cambios=true;
           while(cambios){ // Mientras se intercambie algún elemento
                       cambios=false;
                       for(i=salto; i< A.length; i++) // se da una pasada
                               if(A[i-salto]>A[i]){ // y si están desordenados
                                     aux=A[i]; // se reordenan
                                     A[i]=A[i-salto];
                                     A[i-salto]=aux;
                                     cambios=true; // y se marca como cambio.
                               }
                        }
            }
}



}

No hay comentarios:

Publicar un comentario