zoukankan      html  css  js  c++  java
  • 冒泡排序Bubble_Sort

    基本原理:对于冒泡排序来说,基本思想是从第一个元素开始,数组中的数据依次和它后面相邻的数据进行比较,即1和2比较,2和3比较,a和a+1比较,直到倒数第二位和倒数第一位的比较,如果顺序不对就进行交换,这样一次下来最大的元素会被放置在最后的位置上【以升序为例,这里是理解冒泡排序的重点。】接着,在进行一次这样的排序,只不过到倒数第二就截止。最后呢就剩第一位置的元素和第二位置的元素进行比较。这个应该比较好理解,就不上图了吧。不过如果有足够的时间,我还是愿意把图补上的。

    时间复杂度:显然是O(n^2)

    代码

        static void bubble(int [] a)
        {
            for (int i = 0; i < a.length - 1; i++) {
                for (int j = 0; j < a.length - 1 - i; j++)
                    if (a[j] > a[j + 1]) {
                        int temp = a[j];
                        a[j] = a[j + 1];
                        a[j + 1] = temp;
                    }
                for (int n : a)
                    System.out.print(n+" ");
                System.out.println();
            }
        }
    
        public static void main(String []args)
        {
            int [] a = {3, 2, 5, 1, 8, 1, 11, 8};
            bubble(a);
        }

    结果:

    2 3 1 5 1 8 8 11              //先后经历{3,2} {5,1} {8,1} {11,8}的交换
    2 1 3 1 5 8 8 11             //先后经历{3,1} {5,1}的交换 
    1 2 1 3 5 8 8 11             //先后经历{2,1} {3,1}的交换
    1 1 2 3 5 8 8 11            //交换{2,1},此后在未发生过交换
    1 1 2 3 5 8 8 11
    1 1 2 3 5 8 8 11
    1 1 2 3 5 8 8 11

  • 相关阅读:
    两排滚动js
    弹性布局
    channelartlist添加栏目链接
    首页调取二级、三级栏目
    dede完美分页样式
    如何安装sass
    首页分页(自由列表)
    tag标签调取
    25.简单的路由
    24.简单的自定义服务
  • 原文地址:https://www.cnblogs.com/lbrs/p/11886536.html
Copyright © 2011-2022 走看看