有哪位大佬可以帮我看看还能怎么改才能运行不超时,快要废了,以下是我的代码
#include <iostream>
using namespace std;
//二分查找
int BinarySearch(int a[], int x, int low,int high )
{
int i=0,j=0;
int mid=0,flag=-1; //flag为标志位
while(low <= high) //注意直接用while就行,递归栈溢出
{
mid = (low + high) / 2;
if (a[mid]==x)
flag=mid;
else if (a[mid]>x)
high = mid-1;
else
low = mid+1;
}
if(flag==-1){
i=high;
j=low;
}
else{
i=flag;
j=i;
}
cout<<i<<" "<<j<<endl;
return 0;
}
int main()
{
int n,x;
cin>>n>>x;
int *a=new int [n];
for (int i=0; i<n; i++)
cin>>a[i]; //空格输入
BinarySearch(a,x,0,n-1);
return 0;
}