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;
                }
            }
        }

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

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

     参考原文

  • 相关阅读:
    jsp转向
    什么是 XDoclet?
    tomcat中的几点配置说明
    mysql5问题
    POJ 3734 Blocks
    POJ 2409 Let it Bead
    HDU 1171 Big Event in HDU
    POJ 3046 Ant Counting
    HDU 2082 找单词
    POJ 1286 Necklace of Beads
  • 原文地址:https://www.cnblogs.com/faded828x/p/13205668.html
Copyright © 2011-2022 走看看