基础算法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
说明有中文字符;