zoukankan      html  css  js  c++  java
  • 用折半查找法实现排序好的数组的查找(有重复记录)

    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 

  • 相关阅读:
    反射:框架设计的灵魂
    Junit测试
    XML笔记
    map 的用法
    opencv总结1
    光源
    镜面反射
    openGL纹理对象
    GPU入门
    动态规划1
  • 原文地址:https://www.cnblogs.com/yunfei181/p/2101778.html
Copyright © 2011-2022 走看看