wordpress同步公众号培训班线上优化
版权声明
- 本文原创作者:谷哥的小弟
- 作者博客地址:http://blog.csdn.net/lfdfhl
基本原理
冒泡排序是一种基于交换的简单排序算法,通过重复遍历待排序序列,依次比较相邻元素的值,若顺序错误则交换它们,直到整个序列有序。冒泡算法核心思想是将较大的元素逐渐“浮”到序列末尾。时间复杂度为平均和最差情况 O(n²),最好情况(已有序时)为 O(n),空间复杂度为 O(1),属于原地排序且稳定,但由于效率较低,通常仅用于教学或小规模数据场景。
代码实现
public class BubbleSort {public static void bubbleSort(int[] arr) {int n = arr.length;boolean swapped; // 优化标志位,判断本轮是否发生交换for (int i = 0; i < n - 1; i++) { // 外层循环控制排序轮数swapped = false;for (int j = 0; j < n - 1 - i; j++) { // 内层循环处理相邻元素比较if (arr[j] > arr[j + 1]) { // 若前一个元素更大,则交换int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;swapped = true; // 标记本轮发生交换}}if (!swapped) break; // 若本轮无交换,说明已有序,提前终止}}public static void main(String[] args) {int[] arr = {5, 3, 8, 6, 2, 7, 1, 4};bubbleSort(arr);System.out.println("Sorted array: " + Arrays.toString(arr));// 输出:Sorted array: [1, 2, 3, 4, 5, 6, 7, 8]}
}