二分查找

这篇博客介绍了二分查找算法,通过一个图书馆警报的故事生动阐述了二分查找的效率优势。文章指出,二分查找适用于有序数据,能以logN次检测找到目标元素。同时,文章提到了在存在重复元素时如何找到特定位置的元素,引发了对查找方向的思考。
摘要由CSDN通过智能技术生成

二分查找

有一天阿东到图书馆借了 N 本书,出图书馆的时候,警报响了,于是保安把阿东拦下,要检查一下哪本书没有登记出借。阿东正准备把每一本书在报警器下过一下,以找出引发警报的书,但是保安露出不屑的眼神:你连二分查找都不会吗?于是保安把书分成两堆,让第一堆过一下报警器,报警器响;于是再把这堆书分成两堆…… 最终,检测了 logN 次之后,保安成功的找到了那本引起警报的书,露出了得意和嘲讽的笑容。于是阿东背着剩下的书走了。从此,图书馆丢了 N - 1 本书。

二分查找前提是所查找的数必须是有序的:话不多说,看代码:
#include<iostream>
using namespace std;
#include<vector>
int binary_serach(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 (target < nums[mid]) {
   
			right 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值