Búsqueda binaria en C ++ usando Biblioteca de plantillas estándar (STL) binary_search función ()

En este artículo, vamos a aprender cómo buscar un elemento de una matriz utilizando la función binary_search () de C ++ Biblioteca de plantillas estándar (STL) ?

Dado un vector y tenemos que buscar un elemento utilizando binary_search () , que es una función del algoritmo de cabecera de C ++ Biblioteca de plantillas estándar.

binary_search () la función

Se trata de una función incorporada, que se utiliza para buscar un elemento de una matriz utilizando binario algoritmo de búsqueda .

Sintaxis:

binary_search(start_address, end_address, element_to_search);

Aquí,

  1. start_address – a partir del puntero del elemento de la matriz
  2. end_address – terminando puntero del elemento de la matriz
  3. element_to_search – elemento para buscar

Pasos:

  1. declarar y definir una matriz
  2. ordenar la matriz (en este caso, estamos utilizando la función sort () a la matriz de clasificación en orden ascendente).
  3. Encontrar la función de elemento utilizando binary_search ().
  4. Imprimir el mensaje con su índice si existe.

programa para implementar búsqueda binaria usando C ++ STL

#include <iostream>
#include <algorithm>
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;
}

salida

Array elements are:  10 1 20 2 30 4
Sorted array elements: 1 2 4 10 20 30
Element found


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *