欢迎访问宙启技术站
智能推送

Java中的冒泡排序函数及其实现方式

发布时间:2023-10-30 23:14:27

冒泡排序是一种简单的排序算法,通过重复遍历要排序的列表,比较相邻的两个元素,并根据需要交换它们的位置,直到整个列表排序完毕。

以下是一个Java中的冒泡排序函数及其实现方式:

public class BubbleSort {
    public static void bubbleSort(int[] array) {
        int n = array.length;
        for (int i = 0; i < n - 1; i++) {
            for (int j = 0; j < n - i - 1; j++) {
                if (array[j] > array[j + 1]) {
                    // 交换相邻的两个元素
                    int temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                }
            }
        }
    }

    public static void main(String[] args) {
        int[] array = {5, 3, 8, 4, 2};
        bubbleSort(array);
        System.out.println("排序结果:");
        for (int num : array) {
            System.out.print(num + " ");
        }
    }
}

上面的代码中,bubbleSort函数接受一个整型数组作为参数,对该数组进行冒泡排序。算法的核心是两层嵌套的循环,外层循环控制需要比较的轮数,内层循环用于比较相邻元素并进行交换。

在每一轮循环中,内层循环通过比较array[j]array[j+1]的大小,如果前者大于后者,则交换两个元素的位置。这样,每一轮循环都会将未排序部分的最大元素“冒泡”到数组的最后位置,因此这个算法被称为冒泡排序。

最后,我们在main函数中使用一个例子来测试这个冒泡排序函数。我们创建一个包含5个元素的整型数组,然后调用bubbleSort对它进行排序,并输出排序结果。

冒泡排序的时间复杂度为O(n^2),其中n是需要排序的列表的大小。这是因为算法需要进行n-1轮外层循环,每一轮循环都要进行O(n)次内层循环的比较和交换操作。尽管冒泡排序在时间复杂度上不如其他高效排序算法,但由于其简单和直观的实现方式,在某些特定情况下仍然可以使用。