zoukankan      html  css  js  c++  java
  • 八大基本排序--冒泡排序

    面试中需要手写频率最高的一个排序,也是最简单

    冒泡排序就是两两比较,把最大的放到最后面

    public class SortDemo {
        public static void main(String[] args) {
            int[] arr = { 2, 1, 4, 5, 3 };
            // 第一轮:12453、12453、12453、12435【此时5已经排好序了,第二轮比较的时候不需要再算上5】
            // 第二轮:12435、12435、12345
            // ...
            SortDemo.bubble(arr);
        }
    
        // 冒泡排序
        public static void bubble(int[] arr) {
            // 比较length-1轮,剩下的那一个数字自然就是最小的排在最前面
            for (int i = 0; i < arr.length - 1; i++) {
                // 每轮比较多少次、上一轮已经排好序的不需要再动了
                for (int j = 0; j < arr.length - i - 1; j++) {
                    if (arr[j] > arr[j + 1]) {
                        int temp = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = temp;
                    }
                    System.out.println(Arrays.toString(arr));
                }
            }
            System.out.println(Arrays.toString(arr));
        }
    }

    一开始扫过N个数、然后扫过N-1个数...等差数列

    时间复杂度O(n^2):

    可以通过增加一个附加标记来优化该算法

  • 相关阅读:
    HDU 4334
    HDU 1280
    HDU 1060
    HDU 4033
    大三角形分成4个面积相等的小三角形
    HDU 1087
    HDU 4313
    Sleep(0)及其使用场景
    Decorator(装饰、油漆工)对象结构型模式
    Debug Assertion Failed!
  • 原文地址:https://www.cnblogs.com/yuange678/p/10628716.html
Copyright © 2011-2022 走看看