时间复杂度见解及其计算

本文探讨了如何衡量算法效率,指出时间复杂度是关键标准。通过实例解释了不同情况下,如常数复杂度O(1)、线性复杂度O(n)和递归算法的时间复杂度计算,强调在最坏情况下通常以O(n)估算。总结中提到,算法优劣主要看时间复杂度,并提醒在计算时要考虑首项占比。
摘要由CSDN通过智能技术生成

        在写代码有些时候我们通常是怎样衡量算法的优劣之分的呢!有些人说是代码的多少、还有些人说是时间的长短、还有些人说是代码的难度。其实我一开始也是这么想是想着是代码的长短。其实不然,数据结构的时间复杂度就是衡量效率的标准。所谓的时间复杂度简单来说就是代码在运行时候执行的时间长短。如果你设计的代码时间复杂度大那么代码运行的时间长,反之亦然。

        时间复杂度的计算方法有很多种,这里我只是把自己的理解计算。废话不多说上代码。 

int main(){
    for(int i =0;i<100;i++){
        printf("%d",i);
    }
    return 0;
}

        以上是一个C语言的代码,这里的时间复杂度就是O(1)。(注时间复杂度的符号为“O”)。这段代码中并没有什么未知的变量所以时间复制度为O(1)。实际上就是T=100,在没有未知变量的情况下常数的复杂度都是O(1)。再看看下列代码。

int main(){
    for (int i ;i<n;i++){
        printf("%d",i);
}
    return 0;
}

这里我并没有设置n的次数,也就是说不明白具体循环的次数。所以时间复杂度为T(n)=n也就是n可以是百万级别的也可以说是亿万级别的。  (注:上述的代码只是一个说明并不能运行)

再看一个更难的

int recusion(int* num,int* n){
    for (int i ; i<num;i++){
        n--;
    }
    if(n==0){
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值