Home »
C++ STL
Binary Search in C++ Standard Template Library (STL)
In this article, we are going to learn how to search an element from an array using binary_search() function of C++ Standard Template Library (STL)?
Submitted by IncludeHelp, on January 04, 2018
Problem statement
Given an array and we have to search an element using binary_search(), which is a function of algorithm header of C++ Standard Template Library.
C++ STL binary_search() function
It is a built-in function, which is used to search an element from an array using Binary Search Algorithm.
Syntax
binary_search(start_address, end_address, element_to_search);
Parameter(s)
- start_address - starting array element’s pointer
- end_address - ending array element’s pointer
- element_to_search - element to search
Steps for Binary Search in C++
- Declare and define an array
- Sort the array (here, we are using sort() function to sort array in ascending order).
- Find the element using binary_search() function.
- Print the message with its index if it exists.
C++ program to implement Binary Search
#include <algorithm>
#include <iostream>
using namespace std;
// function to display array list
void dispArray(int arr[], int size) {
for (int i = 0; i < size; i++) cout << " " << arr[i];
cout << endl;
}
// main code for binary search
int main() {
int a[] = {10, 1, 20, 2, 30, 4};
// get array length
int arr_length = sizeof(a) / sizeof(int);
// print array
cout << "Array elements are: ";
dispArray(a, arr_length);
// sort the array
sort(a, a + arr_length);
cout << "Sorted array elements: ";
dispArray(a, arr_length);
// searching 30 in the array
if (binary_search(a, a + arr_length, 30))
cout << "Element found" << endl;
else
cout << "Element does not found" << endl;
return 0;
}
Output
Array elements are: 10 1 20 2 30 4
Sorted array elements: 1 2 4 10 20 30
Element found