C ++ STL中的二进制搜索功能
二进制搜索是一种搜索算法,用于查找目标值在排序数组中的位置。二进制搜索将目标值与已排序数组的中间元素进行比较。二进制搜索的时间复杂度为O(1)。这是一个我们实现各种C++程序。C++STL中的二进制搜索功能
算法
Begin
Initialize the vector of integer values.
The functions are used here:
binary_search(start_pointer, end_pointer, value) = Returns true if the value present in array otherwise false.
lower_bound(start_pointer, end_pointer, value) = Returns pointer to “position of value” if container
contains 1 occurrence of value. Returns pointer to “first position of value” if container contains
multiple occurrence of value. Returns pointer to “position of next higher number than value” if container does not contain occurrence of value.
upper_bound(start_pointer, end_pointer, value) = Returns pointer to “position of next higher valuethan
value” if container contains 1 occurrence of value. Returns pointer to “first position of next higher
number than last occurrence of value” if container contains multiple occurrence of value. Returns
pointer to “position of next higher number than value” if container does not contain occurrence of value.
Print the results.
End.范例程式码
#include<bits/stdc++.h>
using namespace std;
int main() {
vector<int> a = {6,7,10,14,16,20};
if (binary_search(a.begin(), a.end(), 50))
cout << "50 exists in vector";
else
cout << "50 does not exist";
cout << endl;
if (binary_search(a.begin(), a.end(), 7))
cout << "7 exists in the vector";
else
cout << "7 does not exist";
cout << endl;
cout << "The position of 7 using lower_bound ";
cout << lower_bound(a.begin(), a.end(), 7) - a.begin();
cout << endl;
cout << "The position of 7 using upper_bound ";
cout << upper_bound(a.begin(), a.end(), 7) - a.begin();
cout << endl;
}输出结果
50 does not exist 7 exists in the vector The position of 7 using lower_bound 1 The position of 7 using upper_bound 2
热门推荐
10 儿子立冬祝福语简短独特
11 对当兵的祝福语简短
12 侄儿高考试祝福语简短
13 伴郎红包祝福语朋友简短
14 媳妇生日简短祝福语朋友
15 公司年会祝福语简短最好
16 元旦感恩祝福语简短大全
17 红包祝福语简短10字
18 周六早晨祝福语简短