int halfFind(int a[],int n,int num)//二分查找,返回重复的第一个
{
     if(n<1) return -1;
     int start=0,end=n-1;
     int pos;
     
     while(start<end)
     {
         pos=(start+end)/2;
         if(a[pos]==num)  end=pos;
         else if(a[pos]<num) start=pos+1;
         else end=pos-1;
     }
     
     if(a[start]==num) return start;
     
     return -1;
}

 

int _tmain(int argc, _TCHAR* argv[])
{
    int a[10]={1,3,5,6,6,6,6,9,12,15};    
    
    int index=halfFind(a,10,6);
    
    cout<<index<<endl;   
       
    return 0;

 

返回结果为3 

相关文章:

  • 2021-06-25
  • 2021-07-10
  • 2021-05-16
  • 2022-01-12
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-01-25
  • 2021-09-20
  • 2022-12-23
  • 2022-12-23
  • 2021-08-08
  • 2022-12-23
相关资源
相似解决方案