算法描述

冒泡排序(Bubble Sort)_java

代码实现

package Sort;
import java.util.Arrays;

public class Bubble_sort {
public static void main(String[] args) {
//
int[] array = {3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48};
//不同排序算法修改方法名就可以
bubbleSort(array);

System.out.println(Arrays.toString(array));
}
}
public static void  bubbleSort(int[] array_1) {
if (array_1 == null || array_1.length <= 1){
return;
}
int length = array_1.length;
//外层循环控制比较轮数
for (int i = 0;i < length;i++){
//内层循环控制每一轮比较次数,每一轮比较确定当前"最大值"元素的最终位置
for (int j = 0;j < length - 1 - i;j++){
//前面大于后面就交换
if (array_1[j] > array_1[j+1]){
int tmp = array_1[j];
array_1[j] = array_1[j+1];
array_1[j+1] = tmp;
}
}
}

}

算法分析

时间复杂度

对应情况

最佳情况:T(n) = O(n)

最差情况:T(n) = O(n2)

平均情况:T(n) = O(n2)

空间复杂度:O(1)

稳定性:稳定