我创建了这个二分搜索,但似乎每次都陷入循环。它所检查的只是一个向量。我不知道我需要改变什么,我尝试了很多不同的东西。
[1,2,4,6] 如果我搜索 4 永远不会找到它不断击中下 = 中 + 1。
bool SortSearch::binarySearcher(int size, int val)
{
int lower = 0, upper = size - 1, mid;
while (lower < upper)
{
mid = (lower + (upper-lower))/2;
if (students[mid].getID() > val)
upper = mid - 1;
else if (students[mid].getID() < val)
lower = mid + 1;
else if (students[mid].getID() == val)
return true;
else
return false;
}
}