什么是算法?

解决问题的方法
1+2+3+4+5+6+....+1000 = ?
[1]累加法
[2]利用等差数列求和公式直接算出答案
如何评价算法的优劣?=====>时间复杂度
时间复杂度是如何计算出来的?
时间复杂度是研究数据总量n和算法执行次数y之间的关系
y = an+b (a是系数,b是常数)如果n非常大-------y = n(算法执行次数和数据总量直接关系)---O(n)
y = an^2+bn+c(ab是系数,c是常数)   如果n非常大------y=n^2(算法执行次数和数据总量的平方直接关系)----O(n^2)
y = a (a是常数)算法的执行次数和数据总量没有关系----O(1)
y = logn(算法的执行次数和数据总量有log的关系)-------O(logn)    

void fun (int n ){                时间复杂度是研究:数据总量n和执行次数y之间的关系
    int i = 1;                第一轮 i = 1
    while(i<n){            第二轮 i = 2
     i = i*2;                 第三轮 i = 4
     }                          第四轮 i = 8
    }                           第五轮 i = 16
                    ……
                    第y轮 i = 2^(y-1) = n
O(logn) 2^y = n ---------------->y = log2n


 

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值