最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C 二分查找 遞歸與非遞歸的實(shí)現(xiàn)代碼

 更新時(shí)間:2013年03月25日 14:27:53   作者:  
C 二分查找 遞歸與非遞歸的實(shí)現(xiàn)代碼,需要的朋友可以參考一下

復(fù)制代碼 代碼如下:

#include <stdio.h>

int binSearch(int arr[], int low, int high, int key);
int binSearch2(int arr[], int low, int high, int key);
int binSearch3(int arr[],int start,int ends,int key);
int main() {
    int arr[]={3,8,11,15,17,22,23,26,28,29,34};
    //printf("%d",binSearch(arr,0,10,26));
    printf("%d",binSearch3(arr,0,10,26));
    return 1;
}

int binSearch(int arr[], int low, int high, int key) {
    int flag=-1;
    int mid = (low + high) / 2;
    if (low > high) {
        flag= -1;
    } else {

        if (arr[mid] < key) {
            flag= binSearch(arr, mid + 1, high, key);
        } else if (arr[mid]>key) {
            //比如要找的節(jié)點(diǎn)在下面這一層   那么這一層會(huì)返回下標(biāo)上來 用flag接住嘛...
            flag= binSearch(arr,low,mid-1,key);//又差一點(diǎn)忘記了用flag取接住返回值了

        } else {
            flag= mid;
        }
    }
    return flag;
}


//ok==============================
int binSearch2(int arr[], int low, int high, int key) {
    int mid = (low + high) / 2;
    if (low > high) {
        return -1;
    } else {

        if (arr[mid] < key) {
            return binSearch2(arr, mid + 1, high, key);
        } else if (arr[mid]>key) {
            return binSearch2(arr,low,mid-1,key);
        } else {
            return mid;
        }
    }

}

int binSearch3(int arr[],int start,int ends,int key){
    int mid=-1;
    while(start<=ends){
        mid=(start+ends)/2;
        if(arr[mid]<key){
            start=mid+1;
        }else if(arr[mid]>key){
            ends=mid-1;
        }else{
            break;
        }
    }//上述循環(huán)結(jié)束后不一定就是 start>ends的  因?yàn)橛衎reak語句
    if(start>ends){
        mid=-1;
    }
    return mid;
}       

相關(guān)文章

  • C語言中冒泡排序算法詳解

    C語言中冒泡排序算法詳解

    大家好,本篇文章主要講的是C語言中冒泡排序算法詳解,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • C++中簡單的文本文件輸入/輸出示例詳解

    C++中簡單的文本文件輸入/輸出示例詳解

    C++程序把輸入和輸出看作字節(jié)流,輸入時(shí)程序從輸入流中抽取字節(jié),輸出時(shí)程序?qū)⒆止?jié)插入到輸出流中,下面這篇文章主要給大家介紹了關(guān)于C++中簡單的文本文件輸入/輸出的相關(guān)資料,需要的朋友可以參考下
    2021-12-12
  • C語言實(shí)現(xiàn)順序表的順序查找和折半查找

    C語言實(shí)現(xiàn)順序表的順序查找和折半查找

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)順序表的順序查找和折半查找,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • C++特性之智能指針shared_ptr詳解

    C++特性之智能指針shared_ptr詳解

    shared_ptr是C++11提供的一種智能指針類,它足夠智能,可以在任何地方都不使用時(shí)自動(dòng)刪除相關(guān)指針,從而幫助徹底消除內(nèi)存泄漏和懸空指針的問題。本文主要是來和大家聊聊shared_ptr的使用,需要的可以參考一下
    2022-12-12
  • C++使用windwos?api實(shí)現(xiàn)獲取計(jì)算機(jī)基本信息

    C++使用windwos?api實(shí)現(xiàn)獲取計(jì)算機(jī)基本信息

    這篇文章主要為大家詳細(xì)介紹了C++如何使用windwos?api實(shí)現(xiàn)獲取windwos計(jì)算機(jī)的基本信息,包括計(jì)算機(jī)名稱、操作系統(tǒng)版本、處理器信息等,需要的可以參考一下
    2023-04-04
  • c++獲取進(jìn)程信息列表和進(jìn)程所調(diào)用的dll列表

    c++獲取進(jìn)程信息列表和進(jìn)程所調(diào)用的dll列表

    這篇文章主要介紹了c++獲取進(jìn)程信息列表和進(jìn)程所調(diào)用的dll列表,大家參考使用吧
    2013-11-11
  • C++實(shí)現(xiàn)移動(dòng)立方體示例講解

    C++實(shí)現(xiàn)移動(dòng)立方體示例講解

    這篇文章主要介紹了C++實(shí)現(xiàn)移動(dòng)立方體,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-12-12
  • C語言實(shí)現(xiàn)消消樂小游戲

    C語言實(shí)現(xiàn)消消樂小游戲

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)消消樂小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • C語言 二叉查找樹性質(zhì)詳解及實(shí)例代碼

    C語言 二叉查找樹性質(zhì)詳解及實(shí)例代碼

    這篇文章主要介紹了C語言 二叉查找樹性質(zhì)詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • C++項(xiàng)目開發(fā)實(shí)現(xiàn)圖書管理系統(tǒng)

    C++項(xiàng)目開發(fā)實(shí)現(xiàn)圖書管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++項(xiàng)目開發(fā)實(shí)現(xiàn)圖書管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評論

新密市| 军事| 辽中县| 黑河市| 本溪市| 河津市| 开鲁县| 潼关县| 舞钢市| 静安区| 方山县| 孝义市| 鞍山市| 双桥区| 临猗县| 高州市| 保靖县| 二手房| 庆云县| 那曲县| 五大连池市| 嘉禾县| 休宁县| 鹤岗市| 彭水| 阿荣旗| 嘉荫县| 鲜城| 盐源县| 周口市| 奉化市| 延川县| 加查县| 滕州市| 六盘水市| 庆元县| 博客| 河津市| 漾濞| 赤水市| 当阳市|