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
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="">
0>
No hay comentarios:
Publicar un comentario