zoukankan      html  css  js  c++  java
  • 2021/9/12 算法的时间复杂度与空间复杂度

    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)

    二维数组,矩阵相加。

  • 相关阅读:
    kubernetes ingress
    kubernetes service
    kubernetes 准入控制器(admission controller)
    kubernetes 自定义指标HPA
    kubernetes horizontal pod autoscaling
    kubernetes cronjob
    kubernetes job
    kubernetes replicationcontroller和replicaset
    kubernetes daemonset
    kubernetes statefulset
  • 原文地址:https://www.cnblogs.com/hujesse4/p/15259405.html
Copyright © 2011-2022 走看看