Bubble Sort es uno de los algoritmos de clasificación más simples en programación. Recorre repetidamente la secuencia a ordenar, comparando dos elementos a la vez e intercambiándolos si están en el orden incorrecto. Repita el trabajo de visitar la matriz hasta que no haya más elementos que deban intercambiarse, lo que significa que la matriz ha sido ordenada.
La clasificación de burbujas es como burbujas que emergen del agua, en la clasificación de burbujas el número más pequeño o mayor, dependiendo de si estamos clasificando la matriz en orden ascendente o descendente, las burbujas aparecen hacia el principio o el final de la matriz.
1) Compara elementos adyacentes si el primero es más grande que el segundo, intercámbialos.
2) Haga lo mismo para cada par de elementos adyacentes, comenzando con el primer par y terminando con el último par, momento en el que el último elemento debería ser el número mayor.
3) Repita los pasos anteriores para todos los elementos excepto el último.
4) Siga repitiendo los pasos anteriores para cada vez menos elementos hasta que no haya pares de números para comparar.
La clasificación por burbujas tiene un rendimiento deficiente en comparación con otros algoritmos de clasificación, como la clasificación rápida, la clasificación por combinación o la clasificación por shell. La complejidad de caso promedio de estos algoritmos es O (nlogn), mientras que la complejidad de caso promedio de la clasificación de burbujas es O (n ^ 2).
En el mejor de los casos, la clasificación por burbujas es mejor que la clasificación rápida con rendimiento O(n). La clasificación por burbujas es tres veces más lenta que la clasificación rápida o la clasificación por combinación, incluso con n = 100, pero es más fácil de implementar y recordar.
La complejidad y el rendimiento de la clasificación de burbujas son los siguientes:
1) El peor rendimiento de la clasificación de burbujas es O(n^2)
2) El mejor rendimiento de la clasificación de burbujas es O(n)
3) El rendimiento medio de la clasificación de burbujas es O(n^2)
//Clasificación de burbujas publicstaticvoidbubbleSort(int[]arr){//El bucle externo se usa para controlar el número de vueltas del bucle de matriz for(inti=0;i<arr.length-1;i++){//El bucle interno El bucle se utiliza para completar la comparación de los valores de los elementos e intercambiar los valores de los elementos más grandes hacia atrás for(intj=0;j<arr.length-1-i;j++){if(arr[j]>arr [j+1]){inttemp= arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}//Resultado de salida para(intn:nums){System .out.println(n);} }
Por ejemplo:
publicclassMain{publicstaticvoidmain(String[]args){inta[]={6,1,15,32,9};for(inti=1;i<a.length;i++){for(intj=0;j<a .length-1;j++){if(a[j]>a[j+1]){inttemp=a[j];a[j]=a[j+1];a[j+1]=temp ;}}}System.out.println(El resultado de la clasificación de burbujas es:);for(inttemp:a){System.out.print(temp+);}}}
Los resultados de ejecución son los siguientes:
El resultado de la clasificación de burbujas es: 1691532
¡Puedes probarlo tú mismo!