Está en la página 1de 1

package ordsac; public class OrdSac extends OrdBurb{ //Orden.

array

items

public OrdSac(int cant, char tipo){ // Un constructor super(cant,tipo); } void ordenar(boolean trace){ int j,k = arrItems.talle-1,iz = 1,de = arrItems.talle-1; Item aux; do{ // control de pasadas for (j = de; j>=iz; j--) // Pasada descendente if (arrItems.item[j].esMayor(arrItems.item[j-1])){ arrItems.item[j].intercambio(arrItems.item[j-1]); k = j; // Guardamos el lugar del ltimo intercambio } iz = k+1; pas++; if (trace) System.out.println(this); // array despus de la pasada for (j = iz; j<=de; j++) // Pasada ascendente if (arrItems.item[j].esMayor(arrItems.item[j-1])){ arrItems.item[j].intercambio(arrItems.item[j-1]); k = j; // Guardamos el lugar del ltimo intercambio } de = k-1; pas++; if (trace) System.out.println(this); // despues de la pasada }while (iz<=de); }

package ordsac; class Main{ public static void main(String args[]){ System.out.println("\nOrdenamiento metodo Sacudida"); OrdBurb sac = new OrdSac(10,'R'); // Generamos un array de 10 objetos item random sac.ordenar(true); // y lo ordenamos, trazando } } Primeros 10 de 10 elementos Item 4 - 0.58196247 8 - 2.3239708 9 - 9.620431 8 - 8.896734 0 - 0.2709276 5 - 3.500207 8 - 3.1049926 9 - 4.8217998 7 - 4.6133237 2 - 2.9540498

Pasadas de ordenamiento Pas 1 9, 4, 8, 9, 8, 0, 5, 8, 7, 2, Pas 2 9, 8, 9, 8, 4, 5, 8, 7, 2, 0, Pas 3 9, 9, 8, 8, 8, 4, 5, 7, 2, 0, Pas 4 9, 9, 8, 8, 8, 5, 7, 4, 2, 0, Pas 5 9, 9, 8, 8, 8, 7, 5, 4, 2, 0, Pas 6 9, 9, 8, 8, 8, 7, 5, 4, 2, 0, BUILD SUCCESSFUL (total time: 3 seconds)

También podría gustarte