冒泡排序

冒泡排序

方法:

  • 对数组中的各数据,依次比较相邻的两个元素的大小。
  • 如果前面的数据大于后面的数据,就交换这两个数据。经过第一轮的多次比较排序后,可将最小的数据排好。
  • 再用同样的方法把剩下的数据逐个比较,最后便可按照从小到达的顺序排好各数据。
public class P4_1 {
    static final int SIZE = 10;
    public static void bubbleSort(int[] a){
        int temp;
        for (int i = 1; i < a.length; i++) {
            for (int j = 0; j < a.length - i; j++) {
                if (a[j] > a[j+1]) {
                    temp = a[j];
                    a[j] = a[j+1];
                    a[j+1] = temp;
                }
            }
            System.out.print("第"+i+"步排序结果");

            for (int k = 0; k < a.length; k++) {
                System.out.print("  "+a[k]);
            }
            System.out.println();
        }
    }


    public static void main(String[] args) {
        int[] shuzu = new int[SIZE];
        for (int i = 0; i < SIZE; i++) {
            shuzu[i] = (int)(100 + Math.random()*(100+1));
        }
        //
        System.out.println("排序前数组为:");
        for (int i = 0; i < shuzu.length; i++) {
            System.out.print("  "+ shuzu[i]);
        }
        //
        System.out.println();
        bubbleSort(shuzu);
        System.out.println("排序后数组为:");
        for (int i = 0; i < shuzu.length; i++) {
            System.out.print("  "+ shuzu[i]);
        }

    }
}

运行结果:

排序前数组为:
  199  112  108  152  153  134  159  185  140  1791步排序结果  112  108  152  153  134  159  185  140  179  1992步排序结果  108  112  152  134  153  159  140  179  185  1993步排序结果  108  112  134  152  153  140  159  179  185  1994步排序结果  108  112  134  152  140  153  159  179  185  1995步排序结果  108  112  134  140  152  153  159  179  185  1996步排序结果  108  112  134  140  152  153  159  179  185  1997步排序结果  108  112  134  140  152  153  159  179  185  1998步排序结果  108  112  134  140  152  153  159  179  185  1999步排序结果  108  112  134  140  152  153  159  179  185  199
排序后数组为:
  108  112  134  140  152  153  159  179  185  199
Process finished with exit code 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值