使用标准模板库(STL)函数在C ++中进行二进制搜索Binary_search()

给定一个数组,我们必须使用binary_search()搜索元素,此函数是C ++标准模板库的算法标头的功能。

binary_search()函数

它是一个内置函数,用于使用二进制搜索算法从数组中搜索元素。

语法:

binary_search(start_address, end_address, element_to_search);

这里,

  1. start_address-开始数组元素的指针

  2. end_address-结束数组元素的指针

  3. element_to_search-要搜索的元素

步骤:

  1. 声明并定义一个数组

  2. 对数组进行排序(这里,我们使用sort()函数按升序对数组进行排序)。

  3. 使用binary_search()函数查找元素。

  4. 打印带有其索引的消息(如果存在)。

使用C ++ STL实现二进制搜索的程序

#include <iostream>
#include <algorithm>

using namespace std;
 
//显示数组列表的功能
void dispArray(int arr[], int size)
{
    for(int i = 0; i < size; i++)
        cout <<" "<< arr[i];
    cout<<endl;
}
 

//二进制搜索的主要代码 
int main(){
    int a[]= {10, 1, 20, 2, 30, 4};
    
    //获取数组长度
    int arr_length = sizeof(a) / sizeof(int);
    
    //打印数组
    cout<<"Array elements are: ";
    dispArray(a, arr_length);
 
    //对数组排序
    sort(a, a + arr_length);
    cout<<"Sorted array elements: ";
    dispArray(a, arr_length);
    
    //在数组中搜索30-
    if(binary_search(a, a+ arr_length, 30))
        cout<<"Element found"<<endl;
    else
        cout<<"Element does not found"<<endl;
        
    return 0;
}

输出结果

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