java冒泡排序

admin 35 0

# Java冒泡排序

冒泡排序是一种基础的排序算法,它的工作原理是重复地遍历待排序的序列,一次比较两个元素,如果他们的顺序错误就把他们交换过来,遍历序列的工作是重复地进行直到没有再需要交换,也就是说该序列已经排序完成,这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端,如同气泡一样,所以叫冒泡排序。

下面是用Java实现冒泡排序的代码:

public class BubbleSort {
    public static void main(String[] args) {
        int[] array = {64, 34, 25, 12, 22, 11, 90}; // 待排序数组
        bubbleSort(array);
        System.out.println("Sorted array is");
        printArray(array);
    }

    // 用于排序的冒泡排序函数
    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]) {
                    // swap array[j+1] and array[j]
                    int temp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = temp;
                }
    }

    // 用于打印数组的函数
    static void printArray(int[] array) {
        int n = array.length;
        for (int i=0; i<n; ++i)
            System.out.print(array[i] + " ");
        System.out.println();
    }
}

在这段代码中,我们首先定义了一个待排序的数组,然后通过调用`bubbleSort`方法进行排序,在`bubbleSort`方法中,我们使用了两个嵌套的循环来遍历数组并进行比较,如果前一个元素比后一个元素大,我们就交换这两个元素的位置,最大的元素就会像“气泡”一样“浮”到数组的末尾,然后我们再重复这个过程,直到整个数组都排好序为止,我们使用`printArray`方法打印出排好序的数组。