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
热门推荐
5 足球队祝福语简短
10 下雨开工吉祥祝福语简短
11 牛年女神节祝福语简短
12 圣诞祝福语简短小学
13 祝贺开业文案祝福语简短
14 老师送的祝福语简短
15 虎年台词祝福语大全简短
16 新年祝福语长篇文案简短
17 新疆新年祝福语大全简短
18 诗词文案祝福语简短精辟