我一直在努力学习二分查找的工作原理,所以我搜索了一段代码并试图理解每一行的作用。我不明白这一行。带有“return -1”的行。我不明白那是什么意思。有人可以解释那行代码中发生了什么吗?
#include<stdio.h>
int binarySearch(int array[], int size, int searchValue){
int low = 0;
int high = size - 1;
while(low<=high){// is the array exhausted?
int mid = (low + high) / 2; //If not, find the middle index
if(searchValue == array[mid]){
return mid;
}
else if(searchValue > array[mid]){
low = mid + 1;
}
else{
high = mid - 1;
}
}
return -1;
}
int main(){
int array[] = {1,2,3,4,5,6,7};
int searchNum;
printf("Enter an integer:");
scanf("%d", &searchNum);
int result = binarySearch(array,7,searchNum);
if(result>=0){
printf("Found!");
}
else{
printf("Not found!");
}
getch();
}
最佳答案
二分查找是对数组进行的,数组的位置是从0开始的,所以如果返回-1,则表示该位置不在数组中或无法定位。
关于c - 二分查找代码行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46947928/