首页 > 编程语言 > 详细

2021/9/12 算法的时间复杂度与空间复杂度

时间:2021-09-13 19:38:30      阅读:27      评论:0      收藏:0      [点我收藏+]

2021/9/12 算法的时间复杂度与空间复杂度

一般可以从一个算法的时间复杂度与空间复杂度来评价算法的优劣。

时间复杂度:时间增长的趋势

? 通俗来讲就是计算机运行一个算法时,程序代码被执行的总次数

空间复杂度:内存空间增长的趋势

T(n) 表示时间。

常见的渐进时间复杂度有:

style="zoom:25%;"
技术分享图片

时间复杂度计算

1 O(1)

复杂度为常数,不会随着变量的改变而改变

int x = 0;
int y = 1;
int temp = x;
x = y;
y = temp;

2 O(n)

for(int i =0;i<n;i++){
  xxx
}

3 O(logN)

int i = 1;
while (i<n){
  i = i * 2;
}
// 2^k = n
// k = logN

4 O(n logN)

for(int j =0;j<n;j++){
  int i = 1;
  while (i<n){
    i = i * 2;
  }
}
// 在n层循环中套了一层logN

5O(n^2) n平方

for (int i=1;i<n;i++){
  for (int j = 1;j<n;j++{
    xxx;
  }
       }

6 O(nm)

for (int i=1;i<n;i++){
  for (int j = 1;j<m;j++{
    xxx;
  }
       }

空间复杂度计算

用S(n) 表式

S(n) = O(f(n))

1 O(1)

int x = 0;
int y = 0;
x++;
y++;
// x,y无论怎么赋值,在内存分配上总是4个字节

2 O(n)

int []array = new int[n];
for (int i=0;i<n;i++){
  array[i] = i;
}
// 取决于array的长度,即n的大小

3 O(n^2)

二维数组,矩阵相加。

2021/9/12 算法的时间复杂度与空间复杂度

原文:https://www.cnblogs.com/hujesse4/p/15259405.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!