sábado, 20 de mayo de 2023

METODOS DE ORDENACION: METODO DE LA BURBUJA

 

 

METODOS DE ORDENACION: METODO DE LA BURBUJA

 La técnica utilizada se denomina ordenación por burbuja u ordenación por hundimiento debido a que los valores más pequeños “burbujean” gradualmente (suben) hacia la cima o parte superior del array de modo similar a como suben las burbujas en el agua, mientras que los valores mayores se hunden en la parte inferior del array. La técnica consiste en hacer varias pasadas a través del array. En cada pasada, se comparan parejas sucesivas de elementos. Si una pareja está en orden creciente (o los valores son idénticos), se dejan los valores como están. Si una pareja está en orden decreciente, sus valores se intercambian en el array.

 En el caso de un array  con n elementos, la ordenación por burbuja requiere hasta n-1 pasadas. Por cada pasada se comparan elementos adyacentes y se intercambian sus valores cuando el primer elemento es mayor que el segundo elemento. Al final de cada pasada, el elemento mayor ha “burbujeado” hasta la cima de la sublista actual.


Ejemplo:

         



 Codigo Java:


 

       

            
            
            
              package clases;


              public class metodoburbuja {
                  public static void main(String[] args) {
                      //se declara e inicializa un array de enteros de 6 elementos
                      int[] A={5,6,12,1,30,7,2};
                      //imprimimos el array inicial
                      System.out.println("Array Inicial:");
                      //llamamos al metodos "mostrararray" para mostrarlo
                      mostrararray(A);        
                      //llamamos a la funcion "ordenarxburbuja" para ordenarlo ascendentemente
                      ordenarxburbuja(A);        
                      // mostramos array ordenado
                      System.out.println("Array Ordenado:");
                      //llamamos al metodos "mostrararray" para mostrar el array ordenado
                      mostrararray(A);
                  }

                  //metodo que muestra el array por pantalla
                  public  static void mostrararray(int[] A){
                      //recorrera el array hasta mostrar cada uno de los elementos
                      for (int i = 0; i < A.length; i++) {
                          //se muestra los elementos
                          System.out.print(A[i] +" , ");
                      }
                      System.out.println("");
                  }    
                  // metodo que ordena el array por el metodo de la burbuja
                  public static void ordenarxburbuja(int[] a){
                      // se realizan a.length-1 pasadas 
                      for (int i = 0; i < a.length-1; i++) {
                          // se evaluan pares adyacentes y se intercambian cuando el primero
                          //es el mayor que el segundo
                          for (int j = 0; j < a.length-i-1; j++) {
                              if(a[j+1]<a[j]){
                              // se intercambian pares
                                  int aux=a[j+1];
                                  a[j+1]=a[j];
                                  a[j]=aux;
                              }
                          }
                      }
    }
}
 

 

Ejecución del programa usando netbeans
    



Ordenar Array de String o Cadenas con el método burbuja
           Para este caso compararemos los pares de elementos adyacentes en el array con el método                       COMPARETO()
    
COMPARETO(): nos sirve para saber si dos cadenas son iguales o cual de ellas es mayor, devuelve 0 si las cadenas son iguales, resultara un valor menor que 0 si la primera es menor y mayor que 0 si es mayor, para nuestro caso ignoraremos las mayusculas y utilizaremos el metodo compareToIgnoreCase() , veamos un ejemplo usando el metodo de burbuja y comparando los elementos adyacentes con compareToIgnoreCase().


 


         


         



       

            
            
package clases;


public class burbujacadenas {
    public static void main(String[] args) {
        //se declara e inicializa un array de enteros de 6 elementos
        String[] A={"Fernando","Juan","Andres","bernardo"};
        //imprimimos el array inicial
        System.out.println("Array Inicial:");
        //llamamos al metodos "mostrararray" para mostrarlo
        mostrararray(A);        
        //llamamos a la funcion "ordenarxburbuja" para ordenarlo ascendentemente
        ordenarxburbuja(A);        
        // mostramos array ordenado
        System.out.println("Array Ordenado:");
        //llamamos al metodos "mostrararray" para mostrar el array ordenado
        mostrararray(A);
        
    }
    
     public  static void mostrararray(String[] A){
        //recorrera el array hasta mostrar cada uno de los elementos
        for (int i = 0; i < A.length; i++) {
            //se muestra los elementos
            System.out.println(A[i]);
        }
        System.out.println("");
    } 
     
     // metodo que ordena el array por el metodo de la burbuja
    public static void ordenarxburbuja(String[] a){
        // se realizan a.length-1 pasadas 
        for (int i = 0; i < a.length-1; i++) {
            // se evaluan pares adyacentes y se intercambian cuando el primero
            //es el mayor que el segundo
            for (int j = 0; j < a.length-i-1; j++) {
                //si la segunda cedena es menor que la primera se intercambia
                //el compareto arrojara -1 si a[j+1] es menor que a[j]
                // en este caso para ignorar mayusulas usaremos compareToIgnoreCase
                if(a[j+1].compareToIgnoreCase(a[j])<0 a="" aux="" code="" intercambian="" j="" pares="" se="" string="">
 

No hay comentarios:

Publicar un comentario

Pseint : Uso de Estructuras Para - SI - entonces - Repetir

  CASO 1: En una comunidad de habitantes existe un padrón de 20 individuos y se ha decidido realizar una estadística con los que se encuent...