用递归和非递归实现斐波拉切数列和二分查找
来源:互联网 发布:懂球帝软件 编辑:程序博客网 时间:2024/05/22 15:56
1.斐波那契数列递归实现#include<iostream>using namespace std;long long* MyFib(size_t n){long long* FibArray=new long long[n+1];FibArray[0]=0;FibArray[1]=1;for(size_t idx=2;idx<=n;++idx){FibArray[idx]=FibArray[idx-1]+FibArray[idx-2];}return FibArray;}int main(){long long* p=MyFib(10);cout<<p[5]<<endl;return 0;}2.斐波那契数列递归实现#include<iostream>using namespace std;size_t MyFib(size_t n){return n<2? n:MyFib(n-1)+MyFib(n-2);}int main(){size_t n=5;cout<<MyFib(n)<<endl;return 0;}3.二分查找(非递归)#include<iostream>using namespace std;int HalfFind(int* arr,size_t size,int data){int low=0;int high=size-1;while(low<=high){size_t mid=(low+high)/2;if(arr[mid]==data)return mid;else if(arr[mid]>data)high=mid-1;elselow=mid+1; }return -1;}int main(){int arr[]={1,3,5,7,9,11,15,16,19};size_t size=sizeof(arr)/sizeof(arr[0]);int n=11;cout<<HalfFind(arr,size,n)<<endl;return 0;}4.二分查找(递归)#include<iostream>using namespace std;size_t HalfFind(int* arr,size_t low,size_t high,int data){if(high<low)return -1;size_t mid=(low+high)/2;if(arr[mid]==data)return mid;else if(arr[mid]>data)HalfFind(arr,low, mid-1,data);elseHalfFind(arr, mid+1,high,data);return false;}int main(){int arr[]={1,3,5,7,9,11,15,16,19};size_t size=sizeof(arr)/sizeof(arr[0]);int n=86;cout<<HalfFind(arr,0,size,n)<<endl;return 0;}
0 0
- 用递归和非递归实现斐波拉切数列和二分查找
- 二分查找递归和非递归实现
- 二分查找递归和非递归实现
- 二分查找递归和非递归实现
- 二分查找递归和非递归实现
- 递归和非递归实现二分查找
- 分别用递归和非递归实现二分查找算法
- 二分递归查找和非递归查找
- 二分查找(非递归实现和递归实现)
- 二分查找算法递归和非递归实现(C++)
- 一个递归和非递归实现二分查找的代码
- C++数据结构--二分查找的递归和非递归实现
- 分别使用递归和非递归实现二分查找算法
- c++二分查找实现(非递归和递归方式)
- 二分查找法的递归和非递归实现
- 二分查找算法递归和非递归实现
- c++实现二分查找 递归和非递归
- 二分查找的非递归和递归例程实现
- 整数划分
- zabbix 的一次优化尝试
- jquery 下拉弹出菜单
- Java生成静态HTML页面
- C/C++基础1_文件输入输出
- 用递归和非递归实现斐波拉切数列和二分查找
- hdu4722Good Numbers数位dp
- Linux下开启缓存服务NSCD
- 软件构建的前期准备
- Fragment的setUserVisibleHint方法实现延时加载
- centos7下更改默认JDK
- Java 继承中静态方法和变量的 覆盖隐藏问题
- Prize Draw
- poj 2942 点双连通分量+二分图染色