1. 程式人生 > >【提高篇】經典演算法——有序表的二分查詢

【提高篇】經典演算法——有序表的二分查詢

#include <stdio.h>
#define SIZE 10
/*
*csdn學院--2016級
*目的:讓程式碼見證成長(作為一個初學的菜鳥,如
*大家有發現錯誤,歡迎指正!)
*檔名稱:Myfun150.c
*作者:小臣小仁
*問題描述:經典演算法——有序表的二分查詢
*完成日期:2017年4月23日
*/
int main()
{
    int arr[SIZE]={5,7,12,14,16,23,26,31,46,55};
    int key,low=0,high=SIZE-1;
    int mid,index=-1;
    printf("please enter a search number!");
    scanf("%d",&key);
    while(low<=high)
    {
        mid=(low+high)/2;
        if(arr[mid]==key)
        {
            index=mid;
            break;
        }
        if(arr[mid]<key)
            low=mid+1;
        else
            high=mid-1;
    }
    if(index>=0)
    printf("Array lookup location:a[%d]\n",index);
    else
        printf("Not found!\n");
    return 0;
}