Python语言算法的时间复杂度和空间复杂度

Posted KadyCui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

 








以上是关于Python语言算法的时间复杂度和空间复杂度的主要内容,如果未能解决你的问题,请参考以下文章

[ 数据结构-C语言 ] 算法的时间复杂度

Python(算法)-时间复杂度和空间复杂度

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

图+代码Python实现《数据结构与算法基础》

图+代码Python实现《数据结构与算法基础》

数据结构线性表的动态分配顺序存储结构算法c语言具体实现和算法时间复杂度分析