运行结果:
代码学习:
#include<iostream> using namespace std; #define MAX 100 int arr[MAX]={0}; void halfFind(int* arr,int n,int findData){ int left=1; int right=n; while(left<=right){ int middle=left+right/2; if(findData==arr[middle]){ cout<<"你要找的数==>"<<findData<<"在第==>"<<middle<<"个位置上"<<endl; return; } if(findData>arr[middle]){ left=middle+1; } else{ right=middle-1; } } cout<<"没有找到你要找的数据·····"<<endl; } int main(){ cout<<"*************二分查找算法**************"<<endl; cout<<"_______________________________________"<<endl; int n; cout<<"请输入你所查找数据的数组的长度为:"; cin>>n; cout<<"请按提示输入数组数据===>"<<endl; for(int i=1;i<=n;i++){ cout<<"第"<<i<<"个数:"; cin>>arr[i]; cout<<endl; } cout<<"数据输入完毕·····"<<endl; int findData; cout<<"请输入你要查找的数:"; cin>>findData; halfFind(arr,n,findData); return 0; }
Nearth==>分治策略004/二分查找算法
最新推荐文章于 2019-12-07 21:30:58 发布