百度百科:

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法

它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从ZA)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。

这个算法的名字由来是因为越小的元素会经由交换慢慢到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名冒泡排序

 

代码:

public class MaoPao

{

    public static void main(String[] args)

    {

        int[] num = {5, 7, 1, 9, 3};

        System.out.println("排序前:");

        for (int k = 0; k < num.length; k++)

        {

            System.out.print(num[k] + " ");

        }

        System.out.println();

        boolean flag = true;

        System.out.println("开始排序:");

        for (int i = 0; i < num.length - 1 && flag; i++)

        {

            flag = false;

            for (int j = 0; j < num.length - 1 - i; j++)

            {

                if (num[j] > num[j+1])

                {

                    int a = num[j + 1];

                    num[j + 1] = num[j];

                    num[j] = a;

                    flag = true;

                }

            }

            for (int k = 0; k < num.length; k++)

            {

                System.out.print(num[k] + " ");

            }

            System.out.println();

        }

    }

}

输出结果:

排序前:

5 7 1 9 3

开始排序:

5 1 7 3 9

1 5 3 7 9

1 3 5 7 9

1 3 5 7 9

 

算法复杂度为n2   

因为顺序冒泡如果两个相同数字之间不会改变顺序 所以是稳定算法