/*
Java 冒泡排序
/
依次比较两个相邻元素,将较大的元素放到后面,每轮排序都会把最大的元素放到最后面,就如同冒泡一样,最大的气泡浮到水面上
import java.util.Arrays;
public class BubbleSort {
public static void main(String[] args) {
int[] data = new int[] {9, -16, 29, 23, -30, -49, 21, 30, 13};
int arrayLength = data.length;
System.out.println("排序前:"+Arrays.toString(data));
for(int i=0;i<arrayLength-1;i++) {
for(int j=0;j<arrayLength-1-i;j++) {
if(data[j] >data[j+1]) {
int temp = data[j];
data[j] = data[j+1];
data[j+1] = temp;
}
}
System.out.println("第"+(i+1)+"次排序后:"+Arrays.toString(data));
}
System.out.println("====================================");
System.out.println("最终排序结果:"+Arrays.toString(data));
}
}
(3).时间复杂度:
设数组data的长度是n,所以外层循环i 的取值分别是 0 1 2 3 4 … n-2,每次外层循环内层循环次数是:n-2-i
i : 0 1 2 3 4 … n-2
内层循环次数: n-2 n-3 n-4 n-5 n-6 0
所以程序共执行了 (n-2) + (n-3) + (n-4) + … + 1 = (n-2)(n-2+1)/2 = (n^2 -3n + 2)/2
时间复杂度是O(n2)