各排序算法的性能(复杂度)

    1.时间复杂度

    时间复杂度可以认为是对排序数据的总的操作次数。反映当n变化时,操作次数呈现什么规律。

    (1) 常见的时间复杂度有:
    常数阶O(1),对数阶O(log 2 n),线性阶O(n), 线性对数阶O(nlog 2 n),平方阶O( n2 )

    (2)时间复杂度O(1):
    算法中语句执行次数为一个常数,则时间复杂度为O(1),

    2、空间复杂度

    空间复杂度是指算法在计算机内执行时所需存储空间的度量,它也是问题规模n的函数

    (1)空间复杂度O(1):
    当一个算法的空间复杂度为一个常量,即不随被处理数据量n的大小而改变时,可表示为O(1)

    (2)空间复杂度O(log 2 N):
    当一个算法的空间复杂度与以2为底的n的对数成正比时,可表示为 O(log 2 n)ax=N,则x=logaN

    (3)空间复杂度O(n):
    当一个算法的空间复杂度与n成线性比例关系时,可表示为0(n).

    这里写图片描述

    1、归并排序每次递归都要用到一个辅助表,长度与待排序的表长度相同,虽然递归次数是O(log2n),但每次递归都会释放掉所占的辅助空间,

    2、快速排序空间复杂度只是在通常情况下才为O(log2n),如果是最坏情况的话,很显然就要O(n)的空间了。当然,可以通过随机化选择pivot来将空间复杂度降低到O(log2n)。

    • 0
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值