Fibonacci数列构建与时间空间复杂度分析
来源:互联网 发布:股票分时线数据接口 编辑:程序博客网 时间:2024/06/06 12:30
问题描述:构建Fibonacci数列。分别用递推、递归、数组构建Fibonacci序列的若干项,分别从时间、空间的复杂度角度对三种方法进行比较,并测试三种方法程序运行的时间
作者:何知令
作者:何知令
完成时间:2017年4月22日
代码:
/*问题描述:构建Fibonacci数列。分别用递推、递归、数组构建Fibonacci序列的若干项,分别从时间、空间的复杂度角度对三种方法进行比较,并测试三种方法程序运行的时间作者:何知令完成时间:2017年4月22日*/#include <stdio.h>#include <stdlib.h>#include <time.h>#include <windows.h>#define N 50long recursion()//递推{ int a=1,b=1; int i; long sum=0; for(i=0;i<N-2;i++) { sum=a+b; a=b; b=sum; } return sum;}long recurrence(int n)//递归{ if(n==1||n==2) return 1; else return recurrence(n-1)+recurrence(n-2);}long arry(){ int i; long s[N]; s[0]=1; s[1]=1; for(i=2;i<N;i++) { s[i]=s[i-2]+s[i-1]; } return s[i-1];}int main(){ int s[N]; long result_recursion; long result_recurrence; long result_arry; clock_t start; clock_t end; start = clock(); result_recursion = recursion(); end = clock(); printf("递推终解: %ld 空间复杂度为:4(设置4个变量)\n耗时: %fseconds",result_recursion,(float)(end-start)/CLOCKS_PER_SEC); printf("\n-----------------------\n"); start = clock(); result_recurrence = recurrence(N); end = clock(); printf("递归终解: %ld 空间复杂度为:%d\n耗时: %fseconds",result_recurrence,N,(float)(end-start)/CLOCKS_PER_SEC); printf("\n-----------------------\n"); start = clock(); result_arry = arry(s); end = clock(); printf("数组终解: %ld 空间复杂度为:%d\n耗时: %fseconds",result_arry,N+4,(float)(end-start)/CLOCKS_PER_SEC); printf("\n-----------------------\n"); return 0;}程序运行结果展示:
知识点总结:时间函数,递归
学习心得:精确到微秒的不会,所以结果是0.00000000000秒
0 0
- Fibonacci数列构建与时间空间复杂度分析
- 算法时间复杂度与空间复杂度分析
- O(logn)时间复杂度求Fibonacci数列
- O(logn)时间复杂度求Fibonacci数列
- O(logn)时间复杂度求Fibonacci数列
- O(logn)时间复杂度求Fibonacci数列
- 时间复杂度&空间复杂度分析
- 数据挖掘算法的空间复杂度与时间复杂度分析
- 算法分析之时间复杂度与空间复杂度
- 时间复杂度与空间复杂度
- 时间复杂度与空间复杂度
- 时间复杂度与空间复杂度
- 时间复杂度与空间复杂度
- 时间复杂度与空间复杂度
- 时间复杂度与空间复杂度
- 时间复杂度与空间复杂度
- 时间复杂度与空间复杂度
- 时间复杂度与空间复杂度
- js性能优化之分时函数
- Java访问控制权限
- mybatis详细学习日志
- PLSQL 复制粘贴/专用复制出现乱码
- AndroidStudio使用中的问题记录
- Fibonacci数列构建与时间空间复杂度分析
- 谈谈程序员最讨厌做的事
- Visual Studio 2013怎么把选项卡设置在左侧显示?
- tomcat虚拟目录设置
- Eclipse打jar包
- matlab中try/catch语句
- myeclipse发布后classes文件夹里找不到xml等配置文件
- Android Dialog弹出时的软键盘弹出问题
- 采用DES加密方式对properties配置文件敏感信息加密处理