冒泡算法

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

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

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

代码:

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值