数据结构 4____计算时间复杂度
2015-09-27 12:08
316 查看
走台阶问题
走台阶版本1:
题目:一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。求总共有多少总跳法,并分析算法的时间复杂度。
源自http://zhedahht.blog.163.com/blog/static/25411174200731844235261/
递归:f(n)=f(n-1)+f(n-2)
其中f(0)=f(1)=1;
对最后一步分情况讨论:
走一步为f(n-1)种方法,走两步为f(n-2)种方法。
算法复杂度:O(n)
或者采用斐波那契数列通项公式直接计算:F(n)=(√5/5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}
走台阶版本2:
题目:一个台阶总共有n级,如果一次可以跳1-n级。求总共有多少总跳法,并分析算法的时间复杂度。
递归:f(n)=f(n-1)+f(n-2)+...+f(1)+f(0)=2*f(n-1)=2^(n-1)
对最后一步分情况讨论:
最后一步走i个台阶有f(n-i)种方法,所以
(1)f(n)=f(n-1)+f(n-2)+...+f(1)+f(0)
(2)f(n-1)=f(n-2)+f(n-3)+...+f(1)+f(0)
(1)-(2)得f(n)=2*f(n-1)
有因为f(1)=1, 所以f(n)=2^(n-1)
算法复杂度:O(1)
本文转载自: /article/1820938.html
走台阶版本1:
题目:一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。求总共有多少总跳法,并分析算法的时间复杂度。
源自http://zhedahht.blog.163.com/blog/static/25411174200731844235261/
递归:f(n)=f(n-1)+f(n-2)
其中f(0)=f(1)=1;
对最后一步分情况讨论:
走一步为f(n-1)种方法,走两步为f(n-2)种方法。
算法复杂度:O(n)
或者采用斐波那契数列通项公式直接计算:F(n)=(√5/5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}
走台阶版本2:
题目:一个台阶总共有n级,如果一次可以跳1-n级。求总共有多少总跳法,并分析算法的时间复杂度。
递归:f(n)=f(n-1)+f(n-2)+...+f(1)+f(0)=2*f(n-1)=2^(n-1)
对最后一步分情况讨论:
最后一步走i个台阶有f(n-i)种方法,所以
(1)f(n)=f(n-1)+f(n-2)+...+f(1)+f(0)
(2)f(n-1)=f(n-2)+f(n-3)+...+f(1)+f(0)
(1)-(2)得f(n)=2*f(n-1)
有因为f(1)=1, 所以f(n)=2^(n-1)
算法复杂度:O(1)
本文转载自: /article/1820938.html
相关文章推荐
- 数据结构,多项式运算,C++,链表
- 一元多项式的加减乘除运算,C++语言描述,数据结构实验
- [数据结构]Hash表初学(数组链表)
- 数据结构顺序栈的创建、初始化、出栈、入栈及销毁
- 数据结构基础 之 最长递增子序列
- (数据结构笔记)二叉查找树的实现
- 数据结构学习笔记——树
- 数据结构学习总结——预备知识
- 数据结构学习总结——数据结构概述
- 2,Add Two Number (LinkList Math)
- 1,Two sum (Hashtable Array)
- Java数据结构与算法之有序数组的插入和合并
- iOS —— JSON 数据结构及其解析方式
- 中国大学MOOC-陈越、何钦铭-数据结构-2015秋 03-树3 Tree Traversals Again (25分)
- iOS ——XML数据结构及其两种解析数据的方式SAX 、DOM
- 【软考之路】-数据结构
- 数据结构中的概念问题
- 数据结构与算法 Big O 备忘录与现实
- 软考---数据结构
- 数据结构和算法