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);
        }
    }

  

posted @ 2018-04-10 11:00  明明一颗大白菜  阅读(843)  评论(0)    收藏  举报
<-- -->