热门

最新

红包

立Flag

投票

同城

我的

发布
qq_45207184
哥哥,成亲吧
6 年前
trueqq_45207184

有哪位大佬可以帮我看看还能怎么改才能运行不超时,快要废了,以下是我的代码
#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;
}

CSDN App 扫码分享
分享
2
点赞
打赏
  • 复制链接
  • 举报
下一条:
判断素数,这样为啥不对#include <stdio.h> #include <stdlib.h> int main() { int x,i; int isPrime=1; scanf("%d",&x); for(i=2;i<x;i++) { if(x%i==0){ isPrime=0; break;} if(isPrime==1) { printf("是素数"); } else { printf("不是素数"); } } return 0; }
立即登录