时间复杂度和空间复杂度

简介: 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

相关文章
|
存储 Java
【JVM】 程序计数器(Program Counter Register)
【JVM】 程序计数器(Program Counter Register)
500 1
|
存储 前端开发 JavaScript
【Linux奇遇记】我和Linux的初次相遇
【Linux奇遇记】我和Linux的初次相遇
1195 1
|
2月前
|
缓存 运维 调度
阿里云CDN怎么添加和修改源站信息?
阿里云CDN源站配置不仅是基础设置,更是智能流量调度的关键。通过灵活添加、修改、删除源站,实现业务高可用与敏捷运维。本文详解操作步骤与最佳实践,助您构建稳定高效的全球加速架构。
|
安全 Linux Shell
HDFS常用命令
HDFS常用命令
391 1
|
并行计算 算法 前端开发
10GBase-T:解锁万兆以太网的新篇章
【10月更文挑战第18天】
832 3
|
SQL 数据处理 数据库管理
如何在 SQL Server 中使用 LEFT
【8月更文挑战第9天】
679 2
如何在 SQL Server 中使用 LEFT
|
SQL 数据格式
在 SQL Server 中使用 STR 函数
【8月更文挑战第5天】
1089 3
在 SQL Server 中使用 STR 函数
|
存储 算法 程序员
操作系统(11)----内存管理5
操作系统(11)----内存管理
574 1
操作系统(11)----内存管理5
|
小程序 Linux
【编程小实验】利用Linux fork()与文件I/O:父进程与子进程协同实现高效cp命令(前半文件与后半文件并行复制)
这个小程序是在文件IO的基础上去结合父子进程的一个使用,利用父子进程相互独立的特点实现对数据不同的操作
292 2
|
JSON IDE Java
创建一个简单的Spring Boot Web项目
创建一个简单的Spring Boot Web项目
490 1