自己随便写的,如果大家有更优化的算法,希望留下评论或链接,非常感谢~~~
int half_search(int num, int arr[], int len){
int start = 0, end = len-1;
int index = 0;
while(start <= end){
index = start + (end-start)/2; //不用 (end+start)/2 是为了防止溢出,
// index = start + (end-start)>>1; //这样可能更快
if(num == arr[index]){
printf("We found this num: %d/n", arr[index]);
return 1;
}else if(num > arr[index]){
start = index + 1;
}else{
end = index - 1;
}
}
printf("Couldn't found this num: %d/n", num);
return 0;
}
本文介绍了一种二分查找算法的实现方式,并提供了具体的代码示例。该算法通过不断缩小搜索范围来提高查找效率。
5674

被折叠的 条评论
为什么被折叠?



