冒泡排序(Java版)

冒泡排序的原理是一直比较相邻的两个数的值,如果左边比右边位置的值要大,则将这两个位置的值互换。当第一轮循环完成,最大值将在数组最右边;当第二轮循环完成,数组第二大的值会在数组倒数第二的位置,以此类推。

冒泡排序的平均时间复杂度为O(n^2), 最好的时间复杂度为O(n),最坏时间复杂度为O(n^2)。

/**
 * Created by lkmc2 on 2018/1/8.
 */
public class BubbleSort {
    public static void bubbleSort(int[] array) {
        for (int i = 0; i < array.length - 1; i++)
            for (int j = 0; j < array.length - i - 1; j++)
                //如果第j个元素比j+1元素的值大
                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 = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1};

        bubbleSort(array);

        for (int num : array) {
            System.out.print(num + " ");
        }
    }
}
运行结果

你可能感兴趣的:(冒泡排序(Java版))