Pearls4 編寫(xiě)正確的程序

4.1 二分搜索

#include<stdio.h>
//#define MAX_N 1000
const int MAX_N = 1000;
// 二分搜索,找到排序數(shù)組中的val出現(xiàn)的位置
int binarySearch(int arr[],int val)
{
    int lo = 0,up = MAX_N - 1;
    while(lo <= up)
    {
        int mid = (lo + up) / 2;
        if(arr[mid] > val) up = mid - 1;
        else if(arr[mid] == val) return mid;
        else lo = mid + 1;
    }
    return -1;
}
// 二分搜索,找到排序數(shù)組中的val在數(shù)組arr中第一次出現(xiàn)的位置
int binarySearch2(int arr[],int val)
{
    int lo = 0,up = MAX_N - 1;
    while(lo + 1 != up)
    {
        int mid = (lo + up) / 2;
        if(arr[mid] < val) lp = mid;
        else up = mid;
    }
    int p = up ;
    if(p >= n || x[p] != t)
        p = -1;
    return p;
}
int main(void)
{
    int arr[MAX_N];
    int i = 0;
    for(i = 0;i < MAX_N; i++)
        arr[i] = i * 3;
    i = binarySearch(arr,18);
    if(i > -1)
        printf("index = %d , val = %d\n",i,arr[i]);
    return 0;
} 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 當(dāng)我最初開(kāi)始參加編程面試的時(shí)候,我所有最心儀的公司都忽視了我。現(xiàn)在回頭看那個(gè)時(shí)候,我發(fā)現(xiàn)自己當(dāng)時(shí)去參加面試都完全沒(méi)...
    Nextoffer閱讀 9,139評(píng)論 14 168
  • 吃完晚飯回到工位準(zhǔn)備繼續(xù)加班的路小白,照例拿起手機(jī)刷會(huì)兒朋友圈。據(jù)她說(shuō),這是她減輕工作壓力的方式之一??墒峭瑸樘幣?..
    大薇薇薇薇閱讀 263評(píng)論 0 0
  • 因?yàn)楝F(xiàn)在的不如意,所以糾結(jié)于過(guò)去。——矯情 我的腦子有死水而滯脹,整個(gè)人浮躁極了。什么事都沒(méi)做好,沒(méi)能與時(shí)間一起一...
    傲嬌的巨人閱讀 339評(píng)論 0 0
  • 清晨五點(diǎn),不等鬧鐘響起便起床了。洗漱完畢,便去廚房給孩子們準(zhǔn)備早餐。 鄉(xiāng)村的清晨是寧?kù)o的,也是清新的,偶爾幾聲的雞...
    靜華2016閱讀 740評(píng)論 10 15

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