时间复杂度&空间复杂度&稳定性

Posted xinzaiyuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了时间复杂度&空间复杂度&稳定性相关的知识,希望对你有一定的参考价值。

目录

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)

以上是关于时间复杂度&空间复杂度&稳定性的主要内容,如果未能解决你的问题,请参考以下文章

数据结构C语言版 —— 时间复杂度&空间复杂度概念和计算

Java 数据结构 & 算法宁可累死自己, 也要卷死别人 2 时间复杂度 & 空间复杂度

算法之带你了解时间&空间复杂度

算法之带你了解时间&空间复杂度

算法之带你了解时间&空间复杂度

算法之带你了解时间&空间复杂度