ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

算法 - 冒泡排序(Java)

2019-03-23 14:49:09  阅读:368  来源: 互联网

标签:sort elements Java int two 冒泡排序 算法 adjacent bubble


分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net 

package chimomo.learning.java.algorithm.sort;

/**
 * @author Chimomo
 *
 * <p>
 * Bubble sort is a kind of simple sort algorithm in computer science. It
 * repeatedly visit the sequence to be sorted, compare two elements each time,
 * swap them if their order is wrong, until no elements need to be swapped. The
 * bigger element will rise to top by swapping like bubble, so it names.
 * </p>
 *
 * The bubble sort algorithm designed as following:
 * <li>
 * 1. Compare the two adjacent elements as a pair, from the first pair to last
 * pair, swap the two if the first one is bigger than the second one. Then, the
 * last element must be the biggest, remove the biggest one from unordered
 * region.
 * </li>
 * <li>
 * 2. Repeat step1 on the elements in the unordered region until no element pair
 * need to be compared.
 * </li>
 *
 * The time complexity of bubble sort is O(n^2).
 *
 * <p>
 * Stability: Bubble sort is swapping bigger element backward. Comparing is
 * comparing the adjacent two elements, swapping is also in the adjacent two
 * elements. So, if the two adjacent elements equal, you will not swap them. And
 * if the two equal elements are not adjacent, even though they are adjacent by
 * swapping the front other elements, you still will not swap them. The equal
 * elements order are not changed in sorting, so bubble sort is stable.
 * </p>
 */
public class BubbleSort {

    /**
     * The bubble sort.
     * @param a The array to be sorted
     */
    public static void sort(int[] a) {
        System.out.println("In Bubble Sort:");

        // The outer loop: Limit the count of elements in each bubble sort comparison.
        for (int i = a.length - 1; i >= 1; i--) {

            // The inner loop: Comparing the elements whose subscript from 0 to i-1.
            for (int j = 0; j <= i - 1; j++) {

                // The sorting process.
                if (a[j] > a[j + 1]) {
                    int t = a[j];
                    a[j] = a[j + 1];
                    a[j + 1] = t;
                }
            }
            System.out.println(String.format("Round {0}: ", a.length - i));
            for (int e : a) {
                System.out.print(e + " ");
            }
            System.out.println();
        }
    }

}

 

标签:sort,elements,Java,int,two,冒泡排序,算法,adjacent,bubble
来源: https://blog.csdn.net/chimomo/article/details/80415611

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有