int firstOcc(int a[],int m,int x)
{
int high=m-1,low=0,mid,index=-1;
while(low<=high){
mid=(low+high)/2;
if(a[mid]<x){
mid=low+1;}
if(a[mid]>x){
mid=high-1;}
if(a[mid]==x){
index=mid;
high=mid-1;}
}
return index;
}
为什么我的功能不起作用?!找到第一次出现。它有什么问题?
找不到错误,从互联网上复制了几乎相同的代码,但我需要知道为什么我的代码不起作用
错误:
mid=low+1;}
…
mid=high-1;}
右:
low=mid+1;}
…
high=mid-1;}
mid
改变是不可能的。