zoukankan      html  css  js  c++  java
  • 冒泡+选择排序

    冒泡排序老算法了,这次系统学习排序算法重温一遍,再加上flag优化一下。时间复杂度O(n2)

    void bubbleSort(int[] nums) {
            for (int i = 0; i < nums.length - 1; i++) {
                boolean flag = false;
                for (int j = nums.length - 1; j > i; j--)
                    if (nums[j] < nums[j - 1]) {
                        nums[j] ^= nums[j - 1];
                        nums[j - 1] ^= nums[j];
                        nums[j] ^= nums[j - 1];
                        flag = true;
                    }
                if (flag == false)
                    break;
            }
        }

    选择排序感觉与冒泡类似,时间复杂度同为O(n2)

    void selectSort(int[] nums){
            for (int i = 0; i < nums.length - 1; i++) {
                int index = i;
                for (int j = i + 1; j < nums.length; j++) {
                    if (nums[j] < nums[index]) {
                        index = j;
                    }
                }
                if (index != i) {
                    int tmp = nums[i];
                    nums[i] = nums[index];
                    nums[index] = tmp;
                }
            }
        }

    冒泡排序一般是稳定的,相邻的等值元素(包括经过一系列交换后相邻)不会颠倒顺序。

    选择排序不稳定,当局部数组首元素与最小值交换时,首元素与数组中等值元素的先后顺序可能颠倒。

     参考原文

  • 相关阅读:
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    Apache Storm 1.1.0 中文文档 | ApacheCN
    mysql生成随机字符串
    nginx的5个特点
    虚拟机网络配置
    (mapreduce题) 找出有共同好友的 users --好好玩
    activemq-5.15.10 启动不了
    mysql导出 Excel数据字典(全)
    WebStorm 免注册码
  • 原文地址:https://www.cnblogs.com/faded828x/p/13205668.html
Copyright © 2011-2022 走看看