时间空间复杂度

算法:‘用来操作数据,解决程序问题的一组方法’

如何去衡量不同算法之间的优劣呢?事后统计法/事前分析估算

事后统计法:

通过统计,监控,利用计算机计算器对不同算法的运行时间进行比较,从而确定算法效率的高低,但是有非常大的局限性

事前分析估算:

在计算机程序编制前,依据统计方法对算法进行估算

 

斐波那契数列:这个数列从第三项开始,每一项都等于前两项之和

public class Bdqs {
    // 求第n个斐波那契数
    // 斐波那契数列,这个数列从第三项开始。每一项都等于前两项之和
    // 下标 0 1 2 3 4 5 6 7
    // 数列 0 1 1 2 3 5 8 13
    // 递归的方法,存在问题,当n为64的时候就很慢
    // 时间复杂度,其实就是看方法(fun1)被调用了多少次,调用了多少次,就是执行多少次
    public static long fun1(int n){
        if(n<=1) return n;
        return fun1(n-1) + fun1(n-2);
    }
    // 时间复杂度
    public static long fun2(long n){
        if(n<=1) return n;
        int first = 0;
        int secound =1;
        // 循环n需要添加几次呢,假设求下标为2的数字,需要加1次,求下标为3的数字需要加2次,求下标为n的数,加n-1次
        for(int i = 0;i < n-1;i++){
            int sum = first+ secound;
            first = secound;
            secound = sum;
        }
        return  secound;
    }
    public static void main(String [] agrs){
        System.out.println(fun1(10));
    }
}

 

什么是时间空间复杂度

 

如何分析时间复杂度

 

时间复杂度的训练

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值