直接上传冒泡排序代码
public class SORT {
public static void main(String[] args) {
int[] array = new int[]{9,8,7,6,5,4,3,2,1};
BubbleSort(array);
for (Object obj: array){
System.out.print(obj+" ");
}
}
public static void BubbleSort(int[] array){
for (int i = 0; i<array.length-1; i++){
for (int j = 0; j<array.length-i-1; j++){
if(array[j] > array[j+1]){
int tmp = array[j];
array[j] = array[j+1];
array[j+1] = tmp;
}
}
}
}
}
时间复杂度:平均情况O(N^2)、最好情况O(N)、最坏情况O(N^2)
空间复杂度:O(1)
稳定性:稳定
我们可以对冒泡排序做一些优化,比如可以在第一次for循环里,添加flag变量,判断if语句是否走过,若没有,则证明排序已经完成,则直接跳出。
第二种优化策略就是鸡尾酒排序(双向冒泡排序),即一趟排序排出一个最大值放到数组尾部,一个最小值放到数组头部