中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

折半查找法

發布時間:2020-07-18 13:05:17 來源:網絡 閱讀:493 作者:銀河星君 欄目:編程語言
//折半查找法,要求有序序列,默認由小到大
#include <iostream>

using namespace std;
//普通方法
int BinSearch2(int *searchTable,int key,int len)
{
    // 最低位置索引low、最高位置索引high、中間位置索引mid
    // 中間位置的可能情況
    // len為奇數時,mid 為正中間位置 mid的左側和右側用于同樣數目的元素
    // len為偶數時,mid為正中間往左的那一個元素   正中間為小數,正中間往左的那一個位置才是(Low+High)/2
    // low與high的關系
    // 正常情況下low<high
    // low==high時,僅剩下最后一個需要判斷的元素,此元素可能與key相同,也可能不同
    // low>high 未找到與key相同的元素
    int low=0;
    int high=len-1;
    int mid;

    while(low<=high){
        mid=(low+high)/2;
        //找到與key相等的一個元素位置
        if(searchTable[mid]==key)
            return mid;
        if (searchTable[mid]>key)
            high=mid-1;
        else
            low=mid+1;
    }
    return -1;
}
//遞歸方法
int BinSearch3(int *searchTable,int key,int low,int high)
{
    if(low>high)
        return 0;//查找失敗
    int mid=(low+high)/2;
    if(searchTable[mid]==key)
        return mid;//查找成功
    if(searchTable[mid]>key)
        return BinSearch3(searchTable,key,low,mid-1);//左查找
    else
        return BinSearch3(searchTable,key,mid+1,high);//右查找
}
int main(int argc, char *argv[])
{
    int Array[15]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
    cout<<"3的位置是:"<<BinSearch2(Array,8,15)<<endl;
    cout<<"3的位置是:"<<BinSearch3(Array,8,1,15)<<endl;
    return 0;
}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武乡县| 伊宁市| 来安县| 左贡县| 汉中市| 雷山县| 思茅市| 阳谷县| 唐山市| 正安县| 盖州市| 收藏| 筠连县| 如东县| 武冈市| 游戏| 隆林| 凉城县| 沛县| 宿州市| 合山市| 贵州省| 万宁市| 湘阴县| 鹿邑县| 福鼎市| 鹤岗市| 左权县| 唐山市| 普宁市| 泰宁县| 新宾| 沐川县| 登封市| 漾濞| 岗巴县| 桓台县| 拜城县| 禹州市| 班玛县| 黑龙江省|