/**
* 冒泡排序 : 是一种原地排序(空间复杂度为O(1)),稳定的排序(不会有相同元素的交换)
* 平均时间复杂度为O(n*n)
*/
public class BubbleSort {
public static void sort(int[] arr){
for(int i=0 ;i<arr.length; i++){ // 循环轮数
boolean flag = false; // 本次循环是否有交换
for(int j = 0 ; j<arr.length-i-1; j++){
if(arr[j] > arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
flag = true;
}
}
if(!flag) break; // 无交换,则退出循环,说明已排好序
}
}
public static void print(int[] arr){
for (int i : arr) {
System.out.print(i+" ");
}
}
public static void main(String[] args) {
int[] arr = {9,8,7,6,5,4,3,2,1};
sort(arr);
print(arr);
}
}