zoukankan      html  css  js  c++  java
  • 基础为技术之本_时间复杂度汇总

    在描述算法复杂度时,常用到O(1),O(n),O(logn),O(nlogn),O(n^2)(来表示对应的复杂程度,不过目前大家默认也通过这几个方式表示空间复杂度。

    那么,O(1), O(n), O(logn), O(nlogn)就可以看作既可表示算法复杂度,也可以表示空间复杂度。

    大O加上()的形式,里面其实包裹的是一个函数f(),O(f()),指明某个算法的耗时/耗空间与数据增长量之间的关系。其中的n代表输入数据的量。

    类型 意义 举例
    O(1) 最低复杂度,耗时与输入数据大小无关,无论输入数据增大多少倍,耗时不变 哈希算法就是典型的O(1)时间复杂度
    O(n) 数据量增大几倍,耗时增大几倍 排序算法
    O(logn) 当数据增大N倍时候,耗时增大以2为抵的logn倍 二分查找,每一次排除一般的可能,256个数据最坏只需要8次就可以找到目标
    O(nlogn) 简单说就是n乘以logn,当数据增大256倍时,耗时增大256 * 8 = 2048倍,时间复杂度高于线性低于平方 归并排序
    O(n^2) 对N个数进行排序,需要扫描N*N次 冒泡算法

    那么数据结构的时间复杂度又分别是如下参考:

  • 相关阅读:
    与DSP通信时,RD&WR信号
    4.2.1 Vector bit-select and part-select addressing
    数据校验
    数据结构 (树,图)
    ASOP编译说明
    os
    20180203-增与查
    yum安装MariaDB
    20180202之engine,URL,base,session
    列表
  • 原文地址:https://www.cnblogs.com/zangjiapei/p/11434782.html
Copyright © 2011-2022 走看看