二、冒泡排序

冒泡排序,面试经常遇到的算法题目,其实冒泡和上学时候站队是一个道理,个子小的靠前,个子大的靠后。其实和选择排序类似吧,选择排序是找到最小值后再交换位置,而冒泡是只要遇到前者比后者大的就交换位置。这样自然会有一些弊端,如果这个数组是升序排列那么排序的速度将会是最快的,但是如果是降序排列速度将会是最慢的。

package bubbling;

/**
 * 冒泡排序
 *
 * @author zy 刘会发
 * @since 2020/4/9
 */
public class Bubbling {

    public static void ari() {
        int a[] = new int[]{5, 2, 7, 6, 3, 8, 9, 10, 20, 13, 15, 11};
        for (int i = 0; i < a.length; i++) {
            for (int j = i + 1; j < a.length; j++) {
                if (a[i] > a[j]) {
                    exchange(a, i, j);//交换
                }
            }
        }
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + ",");
        }
    }

    static void exchange(int[] a, int i, int j) {
        int temp = a[i];
        a[i] = a[j];
        a[j] = temp;
    }

    public static void main(String[] args) {
        ari();
    }
}

 

posted @ 2020-04-09 12:18  葬月!  阅读(120)  评论(0编辑  收藏  举报