zoukankan      html  css  js  c++  java
  • 1. C++完整程序以及递归的时间复杂度

    C++ 完整程序

    //main.cpp
    #include<iostream>
    #include<vector>
    using namespace std;
    
    int getSum(vector<int> v){
        int res=0;
        int n=v.size();
        for(int i=0;i<n;i++) res+=v[i];
        return res;
    }
    int main(){
        int n;
        cin>>n;
        vector<int> v(n);
        for(int i=0;i<n;i++){
            cin>>v[i];
        }
        cout<<getSum(v)<<endl;
        
        return 0;
    }
    

    递归函数的复杂度

    对于递归而言:

    [T(n)=left{egin{matrix} O(1) & n=1\ kT(frac{n}{m})+f(n^a) & n>1 end{matrix} ight. ]

    [T(n) = k^{{log_{m}}^{n}} + sum_{j=0}^{log_{m}^{n-1}}k^jf(n^a/m^j)=n^{{log_{m}}^{k}} + sum_{j=0}^{log_{m}^{n-1}}k^jf(n^a/m^j) ]

    最终的T(n)复杂度为:

    [T(n) = max(O(n^{{log_{m}}^{k}}), O(n^a)) ]

    如果

    [{log_{m}}^{k}=a, T(n)=O(n^alog(n)) ]

  • 相关阅读:
    【JAVA
    【Android
    【开发工具
    【开发工具
    【开发工具
    【Android
    【Android
    【JavaEE】之MyBatis查询缓存
    【JavaEE】之MyBatis逆向工程的使用
    新的起点 Entry KINGSOFT
  • 原文地址:https://www.cnblogs.com/wangzi199/p/13409110.html
Copyright © 2011-2022 走看看