二分查找法

二分查找法

int binarySearch(int a[],int n,int key) {
    int low = 0,mid,high = n - 1;
    while(low <= high) {
        mid = (low + high)/2;
        printf("mid=%d\n",mid);
        if (key < a[mid]) {
            high = mid - 1;
        } else if (key > a[mid]) {
            low = mid +1;
        } else {
            return mid;
        }
    }
    
    return -1;
}

二分查找法(遞歸)

int binarySearch(int a[],int n,int low,int high,int key) {
    int low = 0,mid,high = n - 1;
    if(low <= high) {
        mid = (low + high)/2;
        printf("mid=%d\n",mid);
        if (key < a[mid]) {
            return binarySearch(a,n,low,mid-1,key);
        } else if (key > a[mid]) {
            return binarySearch(a,n,mid+1,high,key);
        } else {
            return mid;
        }
    }
    
    return -1;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 二分查找法主要用來解決查找的問題 1、二分查找法Binary Search (注)對于有序數(shù)列才能使用二分查找法。...
    老實(shí)李閱讀 837評論 1 1
  • 好久沒有和大家見面了,最近一周每天晚上都在搬家,一直沒有時間。今天來給大家分享一道面試的時候,被問及的一道算法題:...
    小草莓子桑閱讀 1,189評論 1 12
  • 二分查找算法是一種在有序數(shù)組中查找某一特定元素的搜索算法。搜素過程從數(shù)組的中間元素開始,如果中間元素正好是要查找的...
    Bloo_m閱讀 586評論 0 6
  • Hello,大家好,今天給大家繼續(xù)講解排序系列??赡苡屑?xì)心的"鳥友"會問,你不是講解排序嗎?怎么今天的主題是...
    Leon_Geo閱讀 354評論 0 1
  • 最近公司項(xiàng)目要上一個日歷提醒的功能,之前沒有接觸過類似的需求,只得從頭開始慢慢研究,今天借機(jī)給大家分享一下個...
    Hem1ngTai閱讀 4,398評論 19 8

友情鏈接更多精彩內(nèi)容