马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
 
给定以下有序查找表,使用二分查找法分别查找关键字56与28是否存在于该查找表 
5,9,15,18,22,25,26,38,42,45,56,56,66,69,75,78,80,83,92,99 
 
#include <stdio.h> 
typedef int ADT; 
  
_Bool binary_search(const ADT arr[], unsigned len, ADT x) 
{  
        int high=len-1,low=0; 
        while(low<=high) 
        { 
            int mid=(high+low)/2; 
            if(x<arr[mid]) 
            high=mid-1; 
            else if(arr[mid]<x) 
            low=mid+1; 
            else 
            return 1; 
        } 
        return 0; 
} 
 
int main(int argc, char *argv[])  
{ 
        ADT array[]={5,9,15,18,22,25,26,38,42,45,56,56,66,69,75,78,80,83,92,99}; 
        printf("%d\n", binary_search(array, sizeof(array)/sizeof(array[0]),56)); 
        printf("%d\n", binary_search(array, sizeof(array)/sizeof(array[0]),28)); 
        return 0; 
} 
 
看看哪里错了呢 |