(2)练习
①斐波那契数列的时间复杂度?
什么是斐波那契数列呢?
也就是0 1 1 2 3 5……这样的数列,也就是第三项是前两项之和。
看出来了吗?
所以,我们先来写一个斐波那契函数
class Fib{
int ret =0;
public int sfib(int x){
if(x==0){
ret = 0;
}else if(x<3){
ret = 1;
}else if(x>2){
ret = sfib(x-1)+sfib(x-2);
}
return ret;
}
}
public class dd {
public static void main(String[] args) {
int x = 6;
Fib fib = new Fib();
int ret = fib.sfib(x);
System.out.println(ret);
}
}
那我们来分析一下啊:
这看起来像不像硕果累累的大树?
我们再来分析:
以上的数是一个实际的样子,但我们来抽象化一下:
所以它的时间复杂度,也就是执行次数 是这些的和,具体方法参考等比数列求和。
还要注意,其实斐波那契不是完全按照上面的抽象图的,实际会少一些递归次数。
看我画的树就知道了。
Java面试核心知识点笔记
其中囊括了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。
Java中高级面试高频考点整理
更多Java进阶知识笔记文档分享,这些对于面试还是学习来说都是一份不错的学习资料
最后还分享Java进阶学习及面试必备的视频教学
)**
[外链图片转存中…(img-0zrGPOXO-1628235275704)]
最后还分享Java进阶学习及面试必备的视频教学
[外链图片转存中…(img-cLbeSpJB-1628235275706)]