马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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;
}
看看哪里错了呢 |