zoukankan      html  css  js  c++  java
  • java的两种冒泡算法

    所谓的冒泡算法,就是给数组进行排序,可以根据以小到大的顺序,也可以根据以小到大的顺序,在数组的封装类java.util.Arrays通过sort方法进行按升序的排序。那不用类的话怎么进行呢?

    思路一:

    设数组的长度为N: 
    (1)比较前后相邻的二个数据,如果前面数据大于后面的数据,就将这二个数据交换。

    (2)这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。

    (3)N=N-1,如果N不为0就重复前面二步,否则排序完成。

      public static void bubblin(int[] a, int l) {
            int i, j;
            for (i = 0; i < l; i++) {
                for (j = 1; j < l - i; j++) {
                    if (a[j - 1] < a[j]) {//升序为小于号,降序为大于号
                        int num = a[j - 1];
                        a[j - 1] = a[j];
                        a[j] = num;
                    }
                }
            }
        }
      public static void main(String args[]) {
            int[] a = {1, 2, 3, 4, 0, 6, 5, 8};
            bubblin(a, 8);
            for (int x : a) {
                System.out.print(x);
            }
        }
    

      

    思路二:

    让数组的每一个元素和数组里面除了自己的其他元素进行对比,如果有比它小的数值就进行交换位置

     public static void bubblin2(int[] a, int l) {
            for (int i = 0; i < l; i++) {
                for (int j = i + 1; j < l; j++) {
                    if (a[j] < a[i]) {
                        int num = a[i];
                        a[i] = a[j];
                        a[j] = num;
                    }
                }
            }
        }
    
        public static void main(String args[]) {
            int[] a = {1, 2, 3, 4, 0, 6, 5, 8};
            bubblin2(a, 8);
            for (int x : a) {
                System.out.print(x);
            }
        }
    

      

  • 相关阅读:
    poj 3087 直接模拟
    POJ-3126 BFS,埃式筛选及黑科技
    POJ3278-Catch That Cow
    js变量提升
    饿了么
    2分钟就能学会的【Google/百度搜索大法】了解一下?
    span标签间距
    Vue移动端项目如何使用手机预览调试
    Port 3000 is already in use
    koa2第一天 async详解
  • 原文地址:https://www.cnblogs.com/mmykdbc/p/8777392.html
Copyright © 2011-2022 走看看