算法基础 - 二分查找

文章目录

二分查找算法通常应用于已排序的数组。以下是一个C++实现的二分查找算法示例:

cpp 复制代码
#include <iostream>
#include <vector>
 
int binarySearch(const std::vector<int>& nums, int target) 
{
    int left = 0;
    int right = nums.size() - 1;
 
    while (left <= right) 
    {
        int mid = left + (right - left) / 2;
        
        if (nums[mid] == target) 
        {
            return mid; // 目标值在数组中的索引
        } 
        else if (nums[mid] < target) 
        {
            left = mid + 1;
        } 
        else 
        {
            right = mid - 1;
        }
        
    }
 
    return -1; // 未找到目标值
}

 
int main() 
{
    std::vector<int> nums = {2, 5, 8, 12, 16, 23, 38, 56, 72, 91};
    int target = 23;
    int index = binarySearch(nums, target);
 
    if (index != -1) 
    {
        std::cout << "Element found at index " << index << std::endl;
    } 
    else 
    {
    
        std::cout << "Element not found" << std::endl;
    }
 
    return 0;
}

这段代码定义了一个binarySearch函数,它接受一个整数向量和一个目标值,返回目标值在数组中的索引,如果不存在则返回-1。在main函数中,我们创建了一个已排序的整数数组和一个要查找的目标值,然后调用binarySearch函数并输出结果。

相关推荐
AI人工智能+电脑小能手12 小时前
【大白话说Java面试题】【Java基础篇】第17题:HashMap的加载因子为什么是0.75而不是1或0.5
java·开发语言·算法·哈希算法·散列表
谭欣辰12 小时前
C++ 哈希表详解
c++·算法·哈希算法·散列表
shehuiyuelaiyuehao13 小时前
算法11,滑动窗口,最大连续1的个数|||
算法·leetcode·职场和发展
blasit13 小时前
Qt C++ http服务器安全登录token生成管理
c++·后端·qt
南宫萧幕13 小时前
车辆能量管理进阶:从前沿算法 (VMD-PPO-DBO) 机制解析到 MPC 工程建模
人工智能·算法·matlab·simulink·控制
云栖梦泽13 小时前
Linux内核与驱动:GPIO设备树与SPI设备树的区别
linux·运维·c++·嵌入式硬件
费曼学习法13 小时前
快速选择算法:如何在 10 亿数据中瞬间找到“第 K 大”?
javascript·算法
如君愿13 小时前
考研复习 Day 18 | 数据结构与算法--图(上)
数据结构·考研·记录考研
南境十里·墨染春水13 小时前
C++笔记——STL list
c++·笔记·list
彷徨而立13 小时前
【C/C++】在头文件中定义全局变量的方法
c语言·开发语言·c++