时间复杂度

  • 一个函数O(1),O(n),O(logn)
  • 定性描述该算法的运行时间
  1. O(1)
  2. let i = 1;
  3. i += 1;
  4. //每次只执行一次
  5. O(n)
  6. for(let i=0;i<10;i++){
  7. console.log(i)
  8. }
  9. O(logN)
  10. let i = 1;
  11. while(i<n){
  12. i*=2
  13. }

O(n)+O(1) = O(n)
O(n)*O(n) = O(n^2)

空间复杂度

  • 一个函数O(1),O(n),O(n^2)
  • 算法在运行中占用存储空间的大小的度量(代码占用的存储空间越小代码就越好)
  1. O(1)
  2. let i = 1; //单个变量占用的内存永远是1,恒定的内存
  3. i += 1;
  4. O(n)
  5. let list = [];
  6. for(let i=0;i<10;i++){
  7. list.push(i)
  8. }
  9. O(n^2)//二维数组(矩阵)
  10. let motrix = [];
  11. for(let i=0;i<n;i+=1){
  12. motrix.push([]);
  13. for(let j=0;j<n;j+=1){
  14. motrix[i].push(j);
  15. }
  16. }