第十四周实践项目1--验证折半查找
2015-12-04 17:17
316 查看
问题及代码:
(1)非递归式:
运行结果:
(2)递归方式:
运行结果:
(1)非递归式:
#include<iostream> using namespace std; int main() { int low=0,high,n; int a[100]; int i=0,f; cout<<"Please input the number of data and what data do you want to find"<<endl; while(cin>>n) { cin>>f; high=n-1; while(i<n) { cin>>a[i]; i++; } int mid; while(low<=high) { mid=(low+high)/2; if(a[mid]==f) { cout<<"find in the postion "<<mid+1<<endl; break; } if(a[mid]>f) { high=mid-1; } else { low=mid+1; } } if(low>high) { cout<<"can't find it"<<endl; } cout<<"Please input the number of data and what data do you want to find"<<endl; low=0; i=0; } return 0; }
运行结果:
(2)递归方式:
#include<iostream> using namespace std; void digui(int low,int high,int a[],int f); int main() { int low=0,high,i=0; int f,a[50],n; cin>>n>>f; while(i<n) { cin>>a[i]; i++; } high=n-1; digui(low,high,a,f); return 0; } void digui(int low,int high,int a[],int f) { int mid; mid=(high-low)/2; if(low<=high) { if(a[mid]==f) { cout<<"find in "<<mid+1; } else if(a[mid]<f) { digui(mid+1,high,a,f); } else { digui(low,mid-1,a,f); } } if(low>high) cout<<"not find"<<endl; }
运行结果:
相关文章推荐
- Java NIO ByteBuffer图解
- Treap学习基本入门
- Leetcode180: Majority Element II
- StarUML使用说明-指导手册
- 通过dSYM和app文件分析Crash
- pat甲 1078 Hashing
- 在WPF中获取程序的专用工作集内存 PerformanceCounter
- 模糊测试相关文章
- DPDK编程指导——编写高效代码(翻译)
- Ansi、GB2312、GBK、Unicode(utf8、16、32)
- 点击头像单独把图片拉取出来.然后再次点击回到初始效果
- Echarts使用指南
- Php数组
- 从内存角度深入看结构体(window/linux)大小
- hdoj Calculate S(n) 2114 (数学规律 取余)
- C# 随机生成手机号码(中国地区)
- 广州的小伙伴福利-由微软组织的在广州SQL Server线下活动
- akka cluster make node as unreachable 问题
- react tab
- Xcode svn import项目 上传.a文件(静态库)