服务器学习网 > 编程学习 > Java如何实现冒泡排序?一文了解思路及实现代码

Java如何实现冒泡排序?一文了解思路及实现代码

服务器学习网综合整理   2024-08-03 15:00:41

冒泡排序的思路 比较相邻元素:从数组的第一个元素开始,依次比较相邻的两个元素。 元素交换:如果第一个元素比第二个元素大(假设是升序排序),则交换它们的位置。 重复遍历:对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 重复上述步骤:针对所有的元素重复...

在编程的世界里,排序算法是基础且不可或缺的一部分。其中,冒泡排序(Bubble Sort)以其简单直观的特点,成为了初学者理解排序逻辑的良好起点。冒泡排序的基本思想是通过比较相邻的元素,如果它们的顺序错误就把它们交换过来。遍历数组的工作是重复进行的,直到没有再需要交换的元素,这意味着数组已经排序完成。

冒泡排序的思路

  • 比较相邻元素:从数组的第一个元素开始,依次比较相邻的两个元素。
  • 元素交换:如果第一个元素比第二个元素大(假设是升序排序),则交换它们的位置。
  • 重复遍历:对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
  • 重复上述步骤:针对所有的元素重复以上的步骤,除了最后一个。
  • 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

Java实现冒泡排序的代码

public class BubbleSort {
    public static void bubbleSort(int[] arr) {
        int n = arr.length;
        for (int i = 0; i < n-1; i++) {
            for (int j = 0; j < n-i-1; j++) {
                **if (arr[j] > arr[j+1]) {
                    // 交换 arr[j+1] 和 arr[j]
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }**
            }
        }
    }

    public static void main(String[] args) {
        int[] arr = {64, 34, 25, 12, 22, 11, 90};
        bubbleSort(arr);
        System.out.println("Sorted array");
        for (int i=0; i < arr.length; i++)
            System.out.print(arr[i] + " ");
    }
}

Java如何实现冒泡排序?一文了解思路及实现代码

在上述代码中,重点在于内层循环中的条件判断和元素交换逻辑。通过不断地遍历数组,比较并交换相邻元素的位置,最终实现数组的排序。冒泡排序虽然简单,但其时间复杂度较高(平均和最坏情况均为O(n^2)),在处理大数据集时效率较低,因此在实际应用中需谨慎选择。

推荐文章