ideas:
- Dos elementos relativamente grande lugar a la derecha
- Desde el principio con el fin de comparar dos elementos adyacentes, el objetivo es encontrar el elemento más grande en el extremo, este elemento ya no participa Comparar
- El segundo sigue a partir de cero, el segundo elemento más grande en la posición correcta
- Comparación de un total de len -1 veces, ya que se ha determinado la posición len -1 elementos, entonces el n-ésimo es sin duda el más pequeño que
- Comparación del número de veces que i es len - i -1, y el siguiente, porque cada vez que un elemento de comparación
- Cuando los dos elementos no se conmutan, el algoritmo de clasificación es estable
- Optimización: Cuando un viaje sin ningún tipo de cambio, explicó que se había ordenado la
Una especie de 2,5,1,6,9,3
algoritmo:
/**
* 冒泡排序
*/
public class Solution {
public static void bubbleSort(int[] array) {
boolean swap; // 优化
for (int i = 0; i < array.length; i++) {
swap = false;
// i 从第 0 次开始,没一趟都会少比较一个元素
// -1 表示比较次数少于元素个数
for (int j = 0; j < array.length - i - 1; j++) {
if (array[j] > array[j + 1]) {
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
swap = true;
}
}
if (swap = false) {
break;
}
}
}
public static void main(String[] args) {
int[] array = new int[]{2, 5, 1, 6, 9, 3};
bubbleSort(array);
for (int i : array) {
System.out.print(i + " "); // 1 2 3 5 6 9
}
}
}