(算法)时间复杂度计算和空间复杂度

165 阅读1分钟

时间复杂度: 时间复杂性

N二次方 > N > log2N

 // O(1) : 只会被执行一次
 	let i = 0;
    i += 1;
 
 // O(N): 循环
  for ( let i =0 ; i < n; i++) {
     console.log(i)
  }
  
  // Noto O(1) + O(N) =  O(N)
  
  // O(logN) 多次循环
  let i = 1;
  while( i < n) {
  	console.log(i);
    i *= 2
    // 2的多少次方
  }

空间复杂度: 算法在运行中临时内存占用多少

// O(1): 声明单个变量
    let i = 0;
    i =+ 1;
    
// O(N): 声明一个数组,添加了多个值
   let list = []
   for ( let i =0 ; i < n; i++) {
     list.push(i)
  }
  
// O(N^2): 矩阵. 队列、多维数组
   let max = []
   for ( let i =0 ; i < n; i++) {
     max.push([i])
     for ( let j = 0 ; j < n; j++) {
     	max[i].push(j)
     }
  }