C++实现斐波那契数列 时间复杂度 空间复杂度
来源:互联网 发布:资源管理系统源码 编辑:程序博客网 时间:2024/05/25 08:13
斐波那契数列我写了四种实现方法:
第一种:递归实现
long long Fib(int n)//递归{if (n < 2){return n;}return Fib(n - 1) + Fib(n - 2);}时间复杂度:O(2^n)
空间复杂度:O(n)
第二种:非递归实现
long long FibNouR(int n)//非递归{long long first = 0;long long second = 1;long long ret;if (n < 2){return n;}else{for (size_t i = 0; i < n; ++i){ret = first + second;first = second;second = ret;}return ret;}}时间复杂度:O(n)
空间复杂度:O(1)
第三种:数组实现
long long* FibArray(int n)//数组{long long* array = new long long[n + 1];array[0] = 0;if (n == 0)return array;array[1] = 1;for (size_t i = 2; i < n; ++i){array[i] = array[i - 1] + array[i - 2];}return array;}时间复杂度:O(n)
空间复杂度:O(n)
第四种:数组的优化
long long FibN2(int n)//优化{long long fibarray[3] = { 0, 1, n };for (size_t i = 2; i < n; ++i){fibarray[2] = fibarray[1] + fibarray[0];fibarray[0] = fibarray[1];fibarray[1] = fibarray[2];}return fibarray[2];}时间复杂度:O(n)
空间复杂度:O(1)
1 0
- C++实现斐波那契数列 时间复杂度 空间复杂度
- 二分查找算法,斐波那契数列的递归及非递归。(分析时间复杂度及空间复杂度)
- 时间空间复杂度(二分查找和斐波那契数列)
- 斐波那契数列数列的三种时间复杂度的实现方法
- 斐波那契数列时间复杂度分析
- 斐波那契数列算法及时间复杂度分析
- 斐波那契数列时间复杂度分析
- C语言-斐波那契(Fibonacci)数列三种不同求法时间复杂度分析
- 斐波那契数列算法的三种C#实现及时间复杂度分析
- 斐波那契数列的递归与非递归算法实现及其时间复杂度
- 写出斐波那契数列的递归与迭代代码,并分析时间和空间复杂度。
- [C++]时间复杂度&空间复杂度
- 斐波那契数列时间复杂度和通项公式的一些记录
- 2012年5月7日---基于斐波那契数列的时间复杂度分析
- 斐波那契数列计算时间复杂度之彻底分析
- 关于斐波那契数列三种解法及时间复杂度分析
- 斐波那契数列递归算法和非递归算法以及其时间复杂度分析
- 斐波那契数列的时间复杂度详释与改进方法
- 【纯新手】虚拟机安装kali教程
- JS自动识别移动端和PC端,分配二级域名
- nodejs实现表单数据的提交
- 20170226C++项目班08_修复bug/函数添加
- 寻找错误结点练习
- C++实现斐波那契数列 时间复杂度 空间复杂度
- 国码切换流程总结
- linux下线程的两种封装方式
- Android studio使用真机不打印Logcat
- shell 数组详解
- 欢迎使用CSDN-markdown编辑器
- Win7安装Cent OS 虚拟机
- Eclipse如何查看接口实现类快捷键
- git使用教程