1、核心思想:
冒泡排序只会操作相邻的两个数据,每次冒泡操作都会对相邻的两个元素进行比较,看是否满足大小关系要求。如果不满足就把这两个元素进行交换。一次冒泡至少会把一个元素移动到最后或最前,重复n次后,即完成了n个元素的排序。
2、时间复杂度:O(n^2)
3、稳定性:稳定
4、空间复杂度:O(n)
5、上代码:
public static void main(String[] args) {
int[] array = new int[]{1, 20, 9, 31, 0, 12, 81, 23};
bubbleSort(array);
System.out.println(Arrays.toString(array));
}
private static void bubbleSort(int[] array){
// 数组长度
int length = array.length;
// 循环排序数组中的元素
for(int i=0;i<length;i++){
// 标识
boolean flag = true;
// 从第一个元素排序,每次排会将最大的数排到最后
for(int j=0;j<length-1-i;j++){
// 当前一个元素大于后一个元素,交换
if(array[j] > array[j+1]){
array[j+1] = array[j+1] + array[j];
array[j] = array[j+1] - array[j];
array[j+1] = array[j+1] - array[j];
flag = false;
}
}
// 当里面的循环一轮下来不存在交换的元素
// 说明从index=0到最后已经都排序好了
// 结束外层循环
if(flag){
break;
}
}
}
6、打印结果:
[0, 1, 9, 12, 20, 23, 31, 81]
Process finished with exit code 0
***看懂了喜欢的可以点个赞哦,后续还会出新的笔记分享,谢谢大家!
以上内容欢迎评论,欢迎指正。