时间复杂度和空间复杂度

简介: O(1):常数复杂度
  • O(1):常数复杂度
  • O(long n):对数复杂度
  • O(n):线性时间复杂度
  • O(n^2):平方
  • O(n^3):立方
  • O(2^n):指数
  • O(n!):阶乘
    注意:在多个程序合在一起的时候,只看最高复杂度的运算

2|0例题

O(1)

int n=100;Console.WriteLine("Input:"+n);

O(N)

for(int i=1;i<=n;i++){             Console.WriteLine("Input:"+i); }

O(N^2)

for(int i=1;i<=n;i++){       for(int j=1;j<=n;j++){                  Console.WriteLine("Input:"+i+"and"+j);       } }

O(long(n))

for(int i=1;i<=n;i=i*2){             Console.WriteLine("Input:"+i); }

O(K^n)

for(int i=1;i<=Math.Pow(2,n);i++){          Console.WriteLine("Input:"+i); }

O(N!)

for(int i=1;i<=Factorial(n);i++){        Console.WriteLine("Input:"+i); }

1+2+3+...+n

for i=1 to n:

y=i+y

这里需要计算n次

O(n)

求和公式:n(n+1)/2

y=n*(n+1)/2

无论n是多少,只计算一次

O(1)

递归:Fibonacci arry 1,1,2,3,5,8,13,21,34...

F(n)=F(n-1)+F(n-2)

def fib(n)  if n==0or n==1       return n;    return fib(n-1)+fib(n-2)

这里可以思考下他的时间复杂度

O(2^n)

这里记住背下master theorem

image.png

相关文章
|
10月前
|
存储 人工智能 缓存
空间复杂度介绍
空间复杂度介绍
98 0
|
2月前
|
算法 编译器
什么是时间复杂度?
什么是时间复杂度?
24 0
|
2月前
|
算法 程序员 存储
时间复杂度与空间复杂度详解
时间复杂度与空间复杂度详解
|
3月前
|
机器学习/深度学习 算法 Windows
时间复杂度
时间复杂度
|
3月前
|
算法
了解时间复杂度和空间复杂度
在学习数据结构前,我们需要了解时间复杂度和空间复杂度的概念,这能够帮助我们了解数据结构。 算法效率分为时间效率和空间效率
26 1
|
3月前
|
机器学习/深度学习 存储 算法
时间复杂度和空间复杂度
时间复杂度和空间复杂度
28 0
|
10月前
|
机器学习/深度学习 算法
时间复杂度和空间复杂度详解
时间复杂度和空间复杂度详解
201 0
|
3月前
|
机器学习/深度学习 算法 Windows
时间复杂度与空间复杂度
如何理解时间复杂度与空间复杂度
|
3月前
|
机器学习/深度学习 算法 搜索推荐
2.时间复杂度与空间复杂度
2.时间复杂度与空间复杂度
41 0
|
9月前
|
算法
【时间复杂度和空间复杂度】
【时间复杂度和空间复杂度】
44 0