📜  冒泡排序java(1)

📅  最后修改于: 2023-12-03 15:22:36.270000             🧑  作者: Mango

冒泡排序 Java

冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就交换它们的位置。遍历数列的工作是重复进行直到没有再需要交换的元素,也就是说该数列已经排序完成。

算法步骤

以下是冒泡排序的算法步骤:

  1. 比较相邻的元素。如果第一个比第二个大,就交换它们两个。
  2. 对每一对相邻元素重复上述步骤,从第一对到最后一对。这样一趟比较之后,最后的元素应该是最大的数。
  3. 针对所有的元素重复上述步骤,除了最后一个。
  4. 持续每次对越来越少的元素重复上述步骤,直到没有任何一对数字需要比较。
代码实现
public static void bubbleSort(int[] arr) {
    int len = arr.length;
    for (int i = 0; i < len - 1; i++) {
        for (int j = 0; j < len - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                // 交换 arr[j] 和 arr[j+1]
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}

其中,arr 是待排序的数组,len 是数组的长度。第一层循环控制一共需要进行多少轮排序,第二层循环则控制每轮排序需要比较的次数。当发现相邻两个元素顺序错误时,就交换它们的位置。

算法分析

冒泡排序是一种稳定的排序算法,时间复杂度为 O(n^2)。对于数量较少的元素,此算法通常表现良好,但是对于数量较多的元素则不太适合,因为其复杂度较高。