Learn to punch 1.25

int binary_search(int arr[], int k, int sz)
{
    //算法的实现

    int left = 0;
    int right = sz - 1;
    while (left<=right)
    {
        int mid = (left + right) / 2;
        if (arr[mid] < k)
        {
            left = mid + 1;
        }
        else if (arr[mid]>k)
        {
            right = mid - 1;
        }
        else
        {
            return mid;
        }
    }
    return -1;

}
int main()
{
    int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
    int k = 17;
    int sz = sizeof(arr) / sizeof(arr[0]);
    int ret = binary_search(arr, k, sz);
    if (ret == -1)
    {
        printf("找不到你要的数字\n");
    }
    else
    {
        printf("找到了,下表是:%d\n", ret);
    }
    return 0;
}

Guess you like

Origin blog.51cto.com/15085369/2606331