基础算法2 分治算法

基础算法2 分治算法
 
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<algorithm>
using namespace std;
int n,s[1000001],x,i;
int BinarySearch(int n,int s[],int x)//BinarySearch(元素个数,需要查找的数组,需要查找的元素) 函数
{
int low=0,high=n-1;
while(low<=high)   //如果大于证明没有查找到;
{
int middle=(high+low)/2;//每循环完一次更新middle的数值;
if(x==s[middle]) return middle;//要查找的元素正好在中间,返回中间的数值(序号);
else if(x>s[middle])
low=middle+1; //在middle之后        //不停的缩小范围;
else high=middle-1;//在middle之前
}
return -1;//没有找到元素;
}
int main()
{
   while(cin>>n)   //当输入n(一共n个数)时【注意用法】
   {
      for(int i=0;i<n;i++)  //注意从0开始!
cin>>s[i];
  sort(s,s+n);
  cin>>x;
  i=BinarySearch(n,s,x);//第二个空只需写数组名即可
  if(i==-1) cout<<"没有找到元素";
  else cout<<"要找的元素在第"<<i+1<<"位"<<endl;
}
return 0;
}
 
 
 
错误:
31 4 C:\Users\Administrator\Documents\未命名10.cpp [Error] stray '\273' in program
说明有中文字符;
posted @ 2021-02-17 21:04  -Sky-  阅读(94)  评论(0编辑  收藏  举报