c-二分查找

2023-03-03 19:22:30 浏览数 (1)

浏览量 1

二分查找作为一个基本的算法,在各种应用和考题中都有用到,其中有两种方式来实现,递归和循环,在适当的条件下选择不同的方式。其实在网上也找得很多关于算法的这种代码,之所以选择推送是希望大家包括我自己能够利用碎片化的时间进行学习,慢慢的积累自身的知识,以期望最终达到质变的过程。

递归方法

代码语言:javascript复制
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;  
}  

非递归方法

代码语言:javascript复制
int BinSearch(int Array[],int SizeOfArray,int key/*要找的值*/)  
{  
    int low=0,high=SizeOfArray-1;  
    int mid;  
    while (low<=high)  
    {  
        mid = (low high)/2;  
        if(key==Array[mid])  
            return mid;  
        if(key<Array[mid])  
            high=mid-1;  
        if(key>Array[mid])  
            low=mid 1;  
    }  
    return -1;  
}  

0 人点赞