Cual es el Metodo de la sacudida
Enviado por Suemi Galeana Nava • 24 de Septiembre de 2015 • Apuntes • 7.221 Palabras (29 Páginas) • 150 Visitas
[pic 1]
ESTRUCTURAS DE DATOS II
Método de la Sacudida (ShakerSort)
[pic 2][pic 3]
[pic 4]
//Metodo de la sacudida ( ShakerSort )
//Forma Ascendente y Descendente mediante ingreso de datos (Scanner)
package metodosacudida;
import java.util.Scanner;
public class MetodoSacudida {
public static int Izquierda,Derecha,Ultimo;//Declaro mis variables globales
public static void FormaOriginal(int a[]){
System.out.println("DESORDEN DE LOS ELEMENTOS");
for (int i = 0; i < a.length;i++){
System.out.print(a[i]+ " ");
}
System.out.println(" ");
}
public static void Asendente(int a[]){
System.out.println("ORDENADO DE FORMA ASCENDENTE");
do {
for (int i = a.length - 1; i > 0 ;i--){
if (a[i - 1] > a[i] ){
int aux = a[i]; //variable auxiliar para
a[i] = a[i - 1];// poder hacer intercambio
a[i - 1] = aux; // de posicion
Ultimo= 1 ;
}
}
Izquierda = Ultimo + 1;
for (int j = 1; j < a.length;j++){
if (a[j - 1] > a[j] ){
int aux = a[j]; //variable auxiliar para
a[j] = a[j - 1];// poder hacer intercambio
a[j - 1] = aux; // de posicion
Ultimo = j ;
}
}
Derecha = Ultimo - 1;
}while (Derecha >= Izquierda );
for (int i = 0; i < a.length ;i++){
System.out.print(a[i] + " ");
}
System.out.println();
}
public static void Desendente(int a[]){
Izquierda = a.length;
Derecha = 1;
Ultimo = a.length - 1 ;
System.out.println("ORDENADO DE FORMA DESCENDENTE");
do {
for (int i = a.length - 1; i > 0 ;i--){
if (a[i - 1] < a[i] ){
int aux = a [i]; //variable auxiliar para
a[i] = a[i - 1];// poder hacer intercambio
a[i - 1] = aux; // de posicion
Ultimo= 1 ;
}
}
Derecha = Ultimo + 1;
for (int j = 1; j < a.length;j++){
if (a [j - 1] < a [j] ){
int aux = a [j]; //variable auxiliar para
a [j] = a [j - 1];// poder hacer intercambio
a[j - 1] = aux; // de posicion
Ultimo = j ;
}
}
Izquierda = Ultimo - 1;
}while (Derecha <= Izquierda );
for (int i = 0; i < a.length ;i++){
System.out.print(a[i] + " ");
}
}
public static void Pasadas (int a [] ){
int aux,k,j,i;
int pasadas=0,comp=0,cambios=0 ;
for (i=0;i
{
pasadas++;
for (j=0;j
{
comp++;
if (a[j]>a[j+1])
{
cambios++;
aux=a[j];
a[j]=a[j+1];
a[j+1]=aux;
}
}
//muestra contenido pasadas
...