zoukankan      html  css  js  c++  java
  • 时间复杂度&空间复杂度&稳定性

    目录

    1. 各种算法的比较

    2. 算法不稳定定义

    3. 不稳定的几种算法

    1. 各种算法的比较

    2. 算法不稳定定义

      定义:在排序之前,有两个数相等,但是在排序结束之后,它们两个有可能改变顺序.

      说明:在一个待排序队列中,A和B相等,且A排在B的前面,而排序之后,A排在了B的后面.这个时候,我们说这种算法是不稳定的.

    3. 不稳定的几种算法

      1)快排为什么不稳定

        3 2 2 4 经过第一次快排后结果:2 2 3 4 (第3号位置的2第一次排序后跑到第1号位置了)

      2)堆排序为什么不稳定  

        如果堆顶3先输出,则,第三层的27(最后一个27)跑到堆顶,然后堆稳定,继续输出堆顶,是刚才那个27

        这样说明后面的27先于第二个位置的27输出,不稳定

            

      3)选择排序为什么不稳定

        5 8 5 2 9 第一次假定1号位置的5最小,但是实际最小的是4号位置的2

        第一次排序后为:2 8 5 5 9 以前1号位置的5跑到3号位置5的后面了

    注:

      时间复杂度

        有几层for循环,时间复杂度就是n的几次方。

        每次循环减半就是nlogn

        只要见到循环减半都有一个logn

      空间复杂度

        申请一个新的内存空间

        n=1 # 空间复杂度 o(1)

        list=[1,2,3,4] # 空间复杂度 o(n)

  • 相关阅读:
    tomcat启动startup.bat一闪而过
    shell简介
    hbase总结,值得一看
    hive的 安装和配置
    存储器管理
    银行家算法
    洛谷 2590 树的统计
    树链剖分 洛谷 3384
    2.3最大公约数与最小公倍数
    2.2 素数与合数
  • 原文地址:https://www.cnblogs.com/xinzaiyuan/p/12697008.html
Copyright © 2011-2022 走看看