转自: http://www.lishiyu.cn/post/45.html

二分法(折半查找) -----------效率高,但要求序列必须有序-->使用范围小了

15/2取7不是8
数据结构——二分查找【转】

/*
*       二分查找算法 ---   递归算法
*
*/
int binSearch( int array[], int low ,int high, int key)
{
    if(low<=high)
    {
        int mid =(low + high)/2;
        if(key == array[mid])
            return mid;
        else if(key < array[mid])
            return  binSearch(array, low , mid-1, key);
        else if(key > array[mid])
            return  binSearch(array, mid+1 , high, key);
    }
    else
        return -1;
}
/*
*  二分查找 ------ 非递归算法
*
*/
int binSearch( int array[], int sizeArray, int key)
{
    int low=0;
    int high= sizeArray-1;
    int mid;
    while(low<=high)
    {
        mid =(low + high)/2;
        if(key == array[mid])
            return mid;
        else if(key < array[mid])
            high = mid - 1;
        else if(key > array[mid])
            low = mid + 1;
    }
    return -1;
}

 

相关文章:

  • 2022-12-23
  • 2021-09-19
  • 2021-10-20
  • 2021-12-13
  • 2021-06-02
  • 2021-11-30
  • 2022-01-31
  • 2022-01-19
猜你喜欢
  • 2021-07-03
  • 2021-08-10
  • 2021-11-26
  • 2021-12-20
  • 2021-09-03
  • 2021-12-15
相关资源
相似解决方案