冒泡排序

作者: null12 | 来源:发表于2018-03-21 17:04 被阅读0次

    一、基本思想

    冒泡排序(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;
        }
    }
    

    三、性能分析

    • 时间复杂度
      O(N2)

    相关文章

      网友评论

        本文标题:冒泡排序

        本文链接:https://www.haomeiwen.com/subject/gmngqftx.html