Algorithms

冒泡排序

2018-03-21  本文已影响0人  null12

一、基本思想

冒泡排序(Bubble Sort)的基本思想就是每次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。

具体步骤:
如果有n个数进行排序(逆序),只需将 n-1个数归位,也就是说要进行n-1 趟操作。

  1. “每一趟”需要从第 1 位开始进行相邻两个数的比较,将较小的一个数放在后面,比较完毕后向后挪一位继续比较下面两个相邻数的大小;
  2. 重复此步骤,直到最后一个尚未归位的数,已经归位的数则无需再进行比较。

二、算法实现

public class BubbleSort {
    public static void main(String[] args) {
        int[] array = { 2, 3, 11,998, 1, 32, 11, 9 };
        int[] result = new BubbleSort().sort(array);
        for (int i = 0, len = result.length; i < len; i++) {
            System.out.print(result[i] + " ");
        }
    }
    public int[] sort(int[] array) {
        int n = array.length;
        // n个数需要进行n-1趟排序
        for (int i = 1; i <= n - 1; i++) {
            /**
             * 第1趟:操作索引0~n-2,最后n-1索引位置的数归位 </br>
             * 第2趟:操作索引0~n-3,最后n-2索引位置的数归位</br>
             * 第n-1趟:操作索引0,最后1索引位置的数归位
             */
            for (int j = 0; j < n - i; j++) {
                if (array[j] < array[j + 1]) {
                    int tmp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = tmp;
                }
            }
        }
        return array;
    }
}

三、性能分析

上一篇下一篇

猜你喜欢

热点阅读