折半查找方法

//折半查找法

    int arr[] = {100,90,80,70,60,50,40,30,20,10};//必須是按序排列的數(shù)組
    int top,mid,bottom = 0;
    int findNumber = 0;

    printf("please input findNumber:\n");
    scanf("%d",&findNumber);

    top = sizeof(arr)/sizeof(arr[0]);
    mid = (top + bottom) / 2;

    while (bottom <= top)
    {
        if (findNumber == arr[mid])
        {
            printf("Found.%d\n",mid);
            break;
        }
        else if (findNumber > arr[mid])
        {
            top = mid - 1;
        }else
        {
            bottom = mid + 1;
            
        }
        mid = (top + bottom) / 2;
    }

    if (top < bottom)
    {
        printf("Not find.\n");
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容