La Ordenación de burbuja (Bubble Sort en inglés) es un sencillo algoritmo de ordenamiento. Funciona revisando cada elemento de la lista que va a ser ordenada con el siguiente, intercambiándolos de posición si están en el orden equivocado. Es necesario revisar varias veces toda la lista hasta que no se necesiten más intercambios, lo cual significa que la lista está ordenada. Este algoritmo obtiene su nombre de la forma con la que suben por la lista los elementos durante los intercambios, como si fueran pequeñas "burbujas". También es conocido como el método del intercambio directo. Dado que solo usa comparaciones para operar elementos, se lo considera un algoritmo de comparación, siendo el más sencillo de implementar.
Descripción:
Una manera simple de expresar el ordenamiento de burbuja en pseudocódigo es la siguiente:
Este algoritmo realiza el ordenamiento de una lista a de n valores, en este caso de n términos numerados del 0 al n-1, consta de dos bucles anidados uno con el índice i, que da un tamaño menor al recorrido de la burbuja en sentido inverso de 2 a n, y un segundo bucle con el índice j, con un recorrido desde 0 hasta n-i, para cada iteración del primer bucle, que indica el lugar de la burbuja.
La burbuja son dos términos de la lista seguidos, j y j+1, que se comparan, si el primero es menor que el segundo sus valores se intercambian.
Esta comparación se repite en el centro de los dos bucles, dando lugar a la postre a una lista ordenada, puede verse que el número de repeticiones sola depende de n, y no del orden de los términos, esto es, si pasamos al algoritmo una lista ya ordenada, realizara todas las comparaciones exactamente igual que para una lista no ordenada, esta es una característica de este algoritmo.
El algoritmo del método es el siguiente:/** * Archivo: MetodoDeLaBurbuja.java * @author Bello Cerecero * @version 1.0 * @since 10/11/2011 */ public class MetodoDeLaBurbuja { public static int[] burbuja(int[] arreglo) { int auxiliar; int[] arregloOrdenado; for(int i = 2; i < arreglo.length; i++) { for(int j = 0;j < arreglo.length-i;j++) { if(arreglo[j] > arreglo[j+1]) { auxiliar = arreglo[j]; arreglo[j] = arreglo[j+1]; arreglo[j+1] = auxiliar; } } } arregloOrdenado = arreglo; return arregloOrdenado; } public static void main(String[] args) { //Valores que tiene el arreglo desordenado. int arreglo[] = {8,6,7,2,1,8,6,8,7,1,9,7,7,10}; int arregloOrdenado[] = burbuja(arreglo); //imprimimos el arreglo ordenado. for(int i = 0; i < arregloOrdenado.length;i++) System.out.println(arregloOrdenado[i]); } }
me ayudo a entender esta metodo grax
ResponderBorrarOdio todo lo que tenga que ver con programación, pero me ayudo a hacer la tarea
ResponderBorrartas bien pendejo jeremy V:
BorrarEste comentario ha sido eliminado por el autor.
BorrarEntiendo, Isaa Aquino, yo igual odiaba cuando me pusieron a programar en C++, luego con java y unity me interesó. Es entendible que una persona odie la programación, más si tu carrera es distinta y A HUEVO quieren enseñarte programacion. Claro que te van a maldecir los fanboy de programación, pero aquí tienes un cibernetico que la odió...
BorrarGracias.
ResponderBorrarLo que no entiendo es porque se usan dos for y no uno??
ResponderBorrarporque uno recorre la matriz verticalmente y otro horizontalmente
Borrarpor que es para verificar cada elemento. Me explico, evaluaras el primer elemento con todos los siguientes y luego avanzas al siguiente y lo evalúas con el resto sobrante, hasta terminar con todo el arreglo
BorrarMe podría ayudar con este problema
ResponderBorrarrealizar un programa el cual pida dos vectores de 5 posiciones cada uno y posterior a ello compararlos. Deberá de mostrar si los vectores son iguales.
por qué int i = 2?
ResponderBorrarde echo con numero 2 solo ordena con numeros 23 23 23 y con 23 23 2 fallaría
Borrarpara compararlo con el valor anterior, es decir compara el valor de i1 con i2
BorrarDe hecho debería de ser i=1, porque si i=2, sería como presumir que los arreglos menores a tres elementos ya están ordenados. Tal cual lo menciona Sam. En otras palabras le falta una iteración con i=2 que sólo es visible cuando son arreglos de tres o menores. En otras palabras si el arreglo original es de dos elementos, no realiza ninguna comparación, si es de tres sólo realiza la primera.
BorrarMmm no entender muy bien 😔😔
ResponderBorrarporke aser eso
ResponderBorrarporke es hasi
BorrarMi irakasle me lo enseño hasi
Borrartas bien buenorro Enaitz
ResponderBorrarTu tambien estas bien buenorro
Borrarola, tenguo una pregunta: ko se asia heso¿¿
ResponderBorrarhola hamijo, la teacher de filosofia me dijo que nada es real, asi que no te esfuerces
Borrarha bale. Entonses estoi trankilo
BorrarLos comentarios aqui están bien interesantes. A propósito, uno es uno con el todo?
BorrarHay metodo para variables de tipo string con este arreglo?
ResponderBorraralguien me podría ayudar , de que forma se puede imprimir el paso a paso del ordenamiento del arreglo.
ResponderBorrardos observaciones, el nombre del metodo es diferente en tu clase main?, y otro es que tu funcion no orderana bien si colocamos un elemento menor al final porque jamas obtiene el ultimo número.
ResponderBorrarEjemplo: [8,9,3,5,7,2]
salida esperada: [2,3,5,7,8,9]
salida obtenida: [3,5,7,8,9,2]
ResponderBorrarmonda