zoukankan      html  css  js  c++  java
  • 数据结构之时间复杂度 C语言

    算法的时间复杂度:用O()表示,执行次数=时间,随着输入规模n增大,T(n)增长最慢的算法为最优算法。
    如何计算时间复杂度:
    用常数1取代运行时间中的所有加法常数
    在修改后的运行次数函数中,只保留最高阶项
    如果最高阶项存在且不是1,则去除与这个项相乘的常数
    得到的最后结果就是O阶

    int i,n=100,sum=0;
    for(i=0;i<n;i++){
    sum+=i;
    }
    上述代码时间复杂度为O(n),因为执行100次,循环的时间复杂度为循环体的时间复杂度乘该循环运行的次数。
    int i,j,n=100,sum=0;
    for(i=0;i<n;i++){
    for(j=0;j<n;j++){
    sum+=i;
    }
    }
    时间复杂度为O(n2)。


    int i,j,n=100,sum=0;
    for(i=0;i<n;i++){
    for(j=i;j<n;j++){
    sum+=i;
    }
    }


    当i=0时执行n次,i=1时执行n-1次,...... 时n+(n-1)+(n-2)+....+1=n(n+1)/2,因此根据策略为O(n2)

    int i=1,n=100;
    while(i<n){
    i=i*2;
    }


    此程序是每次执行i=i*2然后和n比较,设执行次数为x,当执行x个2相乘的时候大于或者等于n就会推出循环即x*2=n,x=log(2)n,因此时间复杂度为O(logn)。

    函数的时间复杂度分析:
    int i,n=100,sum=0;
    for(i=0;i<n;i++){
    function(i);
    }

    void function(int count){
    printf("%d",count);

    }
    函数的时间复杂度为O(1),即总体为O(n)。

  • 相关阅读:
    1.8其他命令
    1.7远程管理常用命令
    1.6.系统信息相关命令
    1.5linux用户权限相关命令
    python 进程创建和共享内容的方法
    python 操作数据库
    python 类方法中参数使用默认值的方法
    异常处理
    推导列表
    装饰器 装饰带参数的函数和添加函数
  • 原文地址:https://www.cnblogs.com/yh2924/p/12492363.html
Copyright © 2011-2022 走看看