-->
当前位置:首页 > 题库 > 正文内容

程序填空题:基于迭代器的折半查找

Luz4年前 (2021-09-05)题库779
下述程序中的binarySearch()函数是一个基于迭代器的折半查找函数。请结合程序上下文将其补充完整。

c++
#include <iostream>
#include <vector>
using namespace std;

template <typename T, typename V>
T binarySearch(T begin, T end, const V v){
auto endOriginal = end;
while () {

if (*mid==v)
return mid;
else if (v < *mid)
end = mid;
else

}
return endOriginal;
}


int main() {
vector<int> a {1,3,5,7,9,11,22,77,88,100,999,2132,6789};
int v;
cin >> v;

auto r = binarySearch(a.cbegin(),a.cend(), v);
if (r==a.cend())
cout << "Not found." << endl;
else
cout << "Found: " << *r << endl;

return 0;
}







答案:
第1空:begin != end

第2空:auto mid = begin + (end-begin)/2;

第3空:begin = mid+1;

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。