zoukankan      html  css  js  c++  java
  • Python语言算法的时间复杂度和空间复杂度

    算法复杂度分为时间复杂度和空间复杂度。

    其作用:
    时间复杂度是指执行算法所需要的计算工作量;
    而空间复杂度是指执行这个算法所需要的内存空间。
    (算法的复杂性体现在运行该算法时的计算机所需资源的多少上,计算机资源最重要的是时间和空间(即寄存器)资源,因此复杂度分为时间和空间复杂度)。

    简单来说,时间复杂度指的是语句执行次数,空间复杂度指的是算法所占的存储空间


    计算时间复杂度的方法:

    1. 用常数1代替运行时间中的所有加法常数
    2. 修改后的运行次数函数中,只保留最高阶项
    3. 去除最高阶项的系数

    按数量级递增排列,常见的时间复杂度有:
    常数阶O(1),对数阶O(log2n),线性阶O(n),
    线性对数阶O(nlog2n),平方阶O(n^2),立方阶O(n^3),…,
    k次方阶O(n^k),指数阶O(2^n)
    随着问题规模n的不断增大,上述时间复杂度不断增大,算法的执行效率越低。

    1.时间复杂度

     1 print('Hello world') # O(1)
     2  
     3  
     4 # O(1)
     5 print('Hello World')
     6 print('Hello Python')
     7 print('Hello KadyCui')
     8  
     9  
    10 for i in range(n): # O(n)
    11     print('Hello world')
    12  
    13  
    14 for i in range(n): # O(n^2)
    15     for j in range(n):
    16         print('Hello world')
    17  
    18  
    19 for i in range(n): # O(n^2)
    20     print('Hello World')
    21     for j in range(n):
    22         print('Hello World')
    23  
    24  
    25 for i in range(n): # O(n^2)
    26     for j in range(i):
    27         print('Hello World')
    28  
    29  
    30 for i in range(n):
    31     for j in range(n):
    32         for k in range(n):
    33             print('Hello World') # O(n^3)

    2.空间复杂度

     1 a = 'Python' # 空间复杂度为1
     2  
     3  
     4 # 空间复杂度为1
     5 a = 'Python'
     6 b = 'PHP'
     7 c = 'Java'
     8  
    10 num = [1, 2, 3, 4, 5] # 空间复杂度为5
    11  
    12  
    13 num = [[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]] # 空间复杂度为5*4
    14  
    15  
    16 num = [[[1, 2], [1, 2]], [[1, 2], [1, 2]] , [[1, 2], [1, 2]]] # 空间复杂度为3*2*2
    
     
  • 相关阅读:
    centos 编码问题 编码转换 cd到对应目录 执行 中文解压
    centos 编码问题 编码转换 cd到对应目录 执行 中文解压
    centos 编码问题 编码转换 cd到对应目录 执行 中文解压
    Android MVP 十分钟入门!
    Android MVP 十分钟入门!
    Android MVP 十分钟入门!
    Android MVP 十分钟入门!
    mysql备份及恢复
    mysql备份及恢复
    mysql备份及恢复
  • 原文地址:https://www.cnblogs.com/kadycui/p/9770467.html
Copyright © 2011-2022 走看看