zoukankan      html  css  js  c++  java
  • 一、时间复杂度

    一、时间复杂度计算规则

    1.基本操作,即只有常数项,其时间复杂度为o(1)。比如if, print  。 与规模N无关

    2.顺序结构 ,按加法计算

    3.循环结构, 按乘法计算

    4。分支结构, 时间复杂度取最大值。

    二、常见时间复杂度与大小关系

    常数项        o(1)            12
    
    线性项        o(n)           2n + 3
    
    平方项        o(n^2)        4n^3 + 5n  + 36
    
    对数项       o(log(n))       5logn + 8
    
    nlog(n)阶    o(nlog(n))      2n + 3nlog(n)  + 7
    
    立方项        o(n^3)         4n^3 + 5n^2 + 3n + 4
    
    指数项       o(2^n)           2^n

    消耗时间大小: o(1) < o(log(n)) <  o(n)  <   o(nlog(n))   <  o(n^2) <    o(n^3)  <  o(2^n)    < o(n!)  < o(n^n)      

    三、python中列表类型不同操作的时间效率比较

    1.列表构造

    (1)加操作

    li1 = [1, 2] 
    li2 = [44, 55]
    li = li1 + li2

    (2)列表生成器

    li = [i for i in range(10000)]

    (3)把可迭代对象直接转成列表

    li = list(range(10000))

    (4)往空列表里追加

    li = []
    for i in range(10000):
        li.append(li)

    (5)extend

    li =[]
    for i in range(10000):
        li.extend(i)

    测试结果:

    list(range)  < 列表生成器 < append < extend <  + 

    四、列表和字典常见操作的时间复杂度

    1.列表:
    索引取值                  index[]       o(1)
    尾部追加                  append()      o(1)
    从尾部往外弹               pop()        o(1)
    从指定位置往外弹           pop(i)        o(n)
    从指定位置插入             insert()      o(n)
    删除                      del          o(n)
    
    2.字典复杂度
    复制              copy         o(n)
    取                get          o(1)
    设值              set          o(1)
    删除              delete       o(1)
    包含              contain      o(1)
    迭代              iteration    o(n)

    五、数据结构引入

    算法关注解决问题的步骤和思想

    数据结构关注一堆数据如何组成。

    python中字典、元组、列表、集合都是已经封装好的高级数据结构。数据结构就是对基本数据类型的封装。

    程序 = 数据结构 + 算法

    抽象数据类型: 把原有的基本数据类型跟这数据所支持的操作放到一起形成整体。

  • 相关阅读:
    pytesser模块WindowsError错误解决方法
    Django 1.10中文文档-聚合
    Django 1.10中文文档-执行查询
    Python NLP入门教程
    Django1.10中文文档—模型
    曲线点抽稀算法-Python实现
    Python判断文件是否存在的三种方法
    epoll原理
    多线程编程
    后端知识地图
  • 原文地址:https://www.cnblogs.com/yq055783/p/12527221.html
Copyright © 2011-2022 走看看