wangtopia

王同学

时间和空间复杂度

时间复杂度为主,理解时间复杂度就能理解空间复杂度了。

学习目标

因为它们和算法相关,先来说说算法。

什么是算法

  1. 什么是算法
  1. 衡量一个算法的好坏

指的是一个算法那执行要消耗的时间,不是指的确切的时间,不是具体的几分钟,一个时间趋势。

指的是一个算法执行要占用的内存空间

时间复杂度

如何表示时间复杂度?

  1. 大O表示法
  1. 如何计算时间复杂度

通过案例来看一下。

void m1(){
 int i =1;//一次
 int j = 2;//一次
 int sum = i + j;//一次
}
int sum = 0;//执行一次
for(int i = 0;i<n;i++){//执行n+1次,判断失败也是一次。
sum+=i;//执行n次
    }

整体就是2n+2,取高阶项就是n。用O(n)表示

O(n2)

  1. 如何去计算时间复杂度

img

空间复杂度

int[] arrayN = new int[n];//创建了数组,n个内存空间
int j = 0;//j,1个内存空间
j++;//常数,占用1个内存空间

一共是n+2的内存空间。

微信赞赏码微信
支付宝赞赏码支付宝