high時,返回查找失敗信息。 (3)取中點,lowa[mid],查找改在右半區進行,low=mid+1;轉向步驟(2)。 c.若ax=a[mid],查找成功,返回數據位置。 代碼實現: #include int b_sea...">

精品一区二区中文在线,无遮挡h肉动漫在线观看,国产99视频精品免视看9,成全免费高清大全

折半查找算法的實現 -電腦資料

電腦資料 時間:2019-01-01 我要投稿
【salifelink.com - 電腦資料】

    算法設計思想如下:

    (1)設置初始區間,low=1;high=length,

折半查找算法的實現

    (2)當low>high時,返回查找失敗信息。

    (3)取中點,low<=high,mid=(low+high)/2。

    a.若kx

    b.若kx>a[mid],查找改在右半區進行,low=mid+1;轉向步驟(2)。

    c.若ax=a[mid],查找成功,返回數據位置。

    代碼實現:

   

#include <stdio.h>int b_search(int x, int a[], int n)  //折半查找函數{    int low = 0;    int high = n ;    if (low > high)    {        return -1;    }    else    {        while (low <= high)        {            int mid = (low + high) / 2;            if (a[mid] < x)            {                low = mid + 1;            }            else if (a[mid] > x)            {                high = mid - 1;            }            else            {                return mid;            }        }    }         return -1;}int main(){    int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };    int key = 0;    int sz = sizeof(arr) / sizeof(arr[0]);    scanf("%d", &key);        int ret = b_search(key, arr, sz);    if (ret == -1)    {        printf("不存在這個數!\n");    }    else    {        printf("%d\n", ret);    }    return 0;}

最新文章