日撸java_day45

第 45 天: 冒泡排序

可以向后冒,也可以向前冒

  /**
     * Bubble sort.
     */
    public void bubbleSort() {
        boolean tempSwapped;
        DataNode tempNode;
        for (int i = 0; i < length; i++) {
            tempSwapped = false;
            for (int j = length - 1; j > i; j--) {
                if (data[j].key < data[j - 1].key) {
                    tempSwapped = true;
                    tempNode = data[j];
                    data[j] = data[j - 1];
                    data[j - 1] = tempNode;
                }// Of if
            }//Of for j
            if (!tempSwapped) {

                System.out.println("Premature ");
                break;
            }// Of if

            System.out.println("Round " + (i+1));
            System.out.println(this);
        }// Of for i
    }// Of bubbleSort

    /**
     * Test unit.
     */
    public static void bubbleSortTest() {
        int[] tempUnsortedKeys = {1, 3, 6, 10, 7, 5, 9};
        String[] tempContents = {"if", "then", "else", "switch", "case", "for", "while"};
        DataArray tempDataArray = new DataArray(tempUnsortedKeys, tempContents);

        System.out.println(tempDataArray);

        tempDataArray.bubbleSort();
        System.out.println("Result\r\n" + tempDataArray);
    }// Of bubbleSortTest

 注意无论向前向后冒泡时候,每一轮确定一个位置,当某一轮没有发生交换,说明已经有序,退出循环即可。相邻两个比较的时候,注意不要越界。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值