【排序算法】02冒泡排序

冒泡排序名字也很形象,每次相邻数比较,如果数据较小就‘上浮’到下一个位置,一边对比筛选一边交换,每轮比较交换之后就有一个数据浮动到最后一个位置,顺序或者逆序排序 只需要改变大小值比较或者数组从后往前遍历

算法简单描述

第一轮:
第1个和第2个比较若第2个小则交换,第2个和第3个比较若第3个小则交换。。。。。第n-1个和第n个数比较,若第n个数小则交换。这样经过一轮遍历,最大的数载便利过程中被寻找出来,并‘浮动’到第n位了。
第二轮:
按照第一轮的方法便利1到n-1,第二大的数浮动到n-1。
。。。。。。。
最后一轮:
比较第1个和第2个数的大小,若第2个数小则交换。

代码实现:

/**
     * 冒泡排序
     * @param nums
     */
    public static void soreBubble(int[] nums){
        for(int i=0;ii;j--){
                if(nums[j]

时间复杂度

一共需要进行 (n-1)+(n-2)+.......+3+2+1 次处理,根据等差数列求和公式可以算出来:(a1+an)n/2 即 n(n-1)/2 ,化简得O(n的平方)

你可能感兴趣的:(【排序算法】02冒泡排序)