以下是一个示例代码,漂亮的实现了使用C语言的二分法查找一个数:
#include<stdio.h>
intbinarySearch(intarr[],intn,inttarget){
intleft=0;
intright=n-1;
while(left<=right){
intmid=left+(right-left)/2;
if(arr[mid]==target){
returnmid;
}elseif(arr[mid]<target){
left=mid+1;
}else{
right=mid-1;
}
}
return-1;//返回-1表示未找到目标数
}
intmain(){
intarr[]={2,4,6,8,10,12,14,16,18};
intn=sizeof(arr)/sizeof(arr[0]);
inttarget=10;
intresult=binarySearch(arr,n,target);
if(result!=-1){
printf("目标数%d找到在索引%d\n",target,result);
}else{
printf("目标数%d未找到\n",target);
}
return0;
}
您可以将要查找的数组和目标数传递给binarySearch
函数,并在函数返回的索引位置找到目标数。如果未找到目标数,则函数将返回-1。在上面的示例中,目标数10在数组中的索引3处找到。