算法描述
代码实现
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)
稳定性:稳定