二分查找(c++)

二分查找
二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务。它的基本思想是:(这里假设数组元素呈升序排列)将n个元素分成个数大致相同的两半,取a[n/2]与欲查找的x作比较,如果x=a[n/2]则找到x,算法终止;如 果x<a[n/2],则我们只要在数组a的左半部继续搜索x;如果x>a[n/2],则我们只要在数组a的右 半部继续搜索x。

在这里插入图片描述

#include<iostream>
#include<vector>
using namespace std;
int search_binary(vector<int>v, int value)
{int low = 0;int high = v.size() - 1;int mid = (low + high) / 2;while (low <= high){if (v[mid] == value){return mid;}else if (value < v[mid]){high = mid-1;}else{low = mid + 1;}mid= (low + high) / 2;}return -1;
}
void main()
{vector<int>v{ 8,11,19,23,27,33,45,55,67,98 };cout << search_binary(v, 10);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/497069.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谷歌母公司投资成绩:4大机构各有侧重,投资2个马斯克项目

李杉 编译自 TechCrunch量子位 出品 | 公众号 QbitAIAlphabet&#xff0c;谷歌母公司。和谷歌做的大多数事一样&#xff0c;Alphabet也在大规模进行投资。这这篇文章中&#xff0c;外媒TechCrunch盘点了Alphabet的风险投资情况、它的投资组合的表现&#xff0c;以及该公司的投资…

Redis 数据库入门教程

From&#xff1a;http://www.jb51.net/article/56448.htm Redis 菜鸟教程&#xff1a;http://www.runoob.com/redis/redis-tutorial.html Redis 设计与实现&#xff1a;http://redisbook.com/ Redis基础、高级特性与性能调优&#xff1a;https://www.jianshu.com/p/2f14bc57…

VS2005 添加 Microsoft.Office.Tools.Word.dll 等引用

1. 入门 (Visual Studio Tools for Office)-------------------------------------------http://msdn2.microsoft.com/zh-cn/library/23cw517s(VS.80).aspx 2. Microsoft Visual Studio 2005 Tools for Office Second Edition Runtime (VSTO 2005 SE) (x86)-------------------…

大脑的终极秘密——从狮子也有意识谈起

作者&#xff1a;中国科学院大学教授 谢平理性思维是意识的高级成分&#xff0c;但它并非人类的专利。在自然界的生存斗争中&#xff0c;人类不仅仅需要通过感觉器官去获取外部世界的印象&#xff0c;还需要对外部世界的事物进行归类、判断与推理&#xff0c;决定自己对刺激的…

MS SQL入门基础:触发器概述

在上面几节我们介绍了一般意义的存储过程&#xff0c;即用户自定义的存储过程和系统存储过程。本节将介绍一种特殊的存储过程&#xff0c;即触发器。在余下各节中我们将对触发器的概念、作用以及对其的使用方法作详尽介绍&#xff0c;使读者了解如何定义触发器&#xff0c;创建…

Python集合(set)类型的操作

菜鸟教程&#xff1a;Python3 集合&#xff1a;https://www.runoob.com/python3/python3-set.html Python 的 集合&#xff08;set&#xff09;和 其他语言类似&#xff0c;是一个无序的不重复元素序列。可以使用大括号 { } 或者 set() 函数创建集合。基本功能包括关系测试和消…

一个线程池中的线程异常了,那么线程池会怎么处理这个线程?

来源&#xff1a;一个线程池中的线程异常了&#xff0c;那么线程池会怎么处理这个线程? - 反光的小鱼儿 - 博客园 一个线程池中的线程异常了&#xff0c;那么线程池会怎么处理这个线程? 目录 线程池常用问题 不允许使用的原因测试流程 测试用例抛出堆栈异常为啥对了一半?怎…

深度学习:技术原理、迭代路径与局限

来源&#xff1a;36氪作者&#xff1a;何沛宽本文尝试复盘梳理深度学习目前的技术要点&#xff0c;深度学习中模型迭代的方向&#xff0c;以及改进后存在的局限。第一部分&#xff1a;深度学习技术基本要素&#xff1a;神经元、神经网络、分类器、可视化框架在深度学习领域&…

简单而直接的Python web 框架:web.py

From&#xff1a;https://www.oschina.net/question/5189_4306 Web.py github 地址&#xff1a;https://github.com/webpy/webpy https://pypi.python.org/pypi/web.py Web.py Cookbook 简体中文版&#xff1a;http://webpy.org/cookbook/index.zh-cn web.py 0.3 新…

ASP.NET页面的结构

ASP.NET页面的结构一、页指令&#xff1a; 包括Assembly(将一个程序集连接到当前页或用户控件)、 Control(.ascx&#xff0c;定义与控件相关的属性&#xff0c;这些属性指导控件编译器的行为)、 Implements&#xff08;说明该页面或该用户控件…

用图表说话--导言

有些时候不用图表反而做得更好 1、有时候用图表来表示某种精确的内容&#xff08;如&#xff1a;范围和预期&#xff09;&#xff0c;可能产生误导 2、有时候有些数据&#xff08;如&#xff1a;公司的损益情况&#xff09;听众和读者都已习惯了一种固定的表述方式&…

1102 Invert a Binary Tree(甲级)

1102 Invert a Binary Tree (25分) The following is from Max Howell twitter: Google: 90% of our engineers use the software you wrote (Homebrew), but you can’t invert a binary tree on a whiteboard so fuck off. Now it’s your turn to prove that YOU CAN invert…

从寻找可敬的人类开始,扩展未来人类生存的8个维度

来源&#xff1a;资本实验室作者&#xff1a;李鑫从小村庄到大城市&#xff0c;从国内到国外&#xff0c;从地球到月球&#xff0c;从太阳系到银河系……什么样的距离才是最远的距离&#xff1f;从地球的内部&#xff0c;到每一个原子&#xff0c;再到我们的情绪&#xff0c;哪…

开源 Python网络爬虫框架 Scrapy

开源 Python 网络爬虫框架 Scrapy&#xff1a;http://blog.csdn.net/zbyufei/article/details/7554322 介绍 所谓网络爬虫&#xff0c;就是一个在网上到处或定向抓取数据的程序&#xff0c;当然&#xff0c;这种说法不够专业&#xff0c;更专业的描述就是&#xff0c;抓取特定网…

SQL2005结合ROW_NUMBER()高效分页存储过程

SQL2005结合ROW_NUMBER()高效分页存储过程&#xff1a;CREATE PROCEDURE [dbo].[sp_Accounts_GetUserListPaged] PageIndex INT, PageSize INT AS BEGIN WITH UserList AS ( SELECT ROW_NUMBER() OVER (ORDER BY RegDate DESC)AS Row, * FROM Accounts_Users) SELECT …

微服务架构设计模式~为应用程序定义微服务架构

为应用程序定义微服务架构 第一步&#xff1a;定义系统操作 第二步&#xff1a;定义服务 第三步&#xff1a;定义服务API和协作方式 第一步&#xff1a;定义系统操作 第二步&#xff1a;定义服务 第三步&#xff1a;定义服务API和协作方式

1079 Total Sales of Supply Chain(甲级)

1079 Total Sales of Supply Chain (25分) A supply chain is a network of retailers&#xff08;零售商&#xff09;, distributors&#xff08;经销商&#xff09;, and suppliers&#xff08;供应商&#xff09;-- everyone involved in moving a product from supplier to…

用 Python 爬虫框架 Scrapy 爬取心目中的女神

From &#xff1a;http://www.cnblogs.com/wanghzh/p/5824181.html 本博文将带领你从入门到精通爬虫框架 Scrapy&#xff0c;最终具备爬取任何网页的数据的能力。 本文以校花网为例进行爬取&#xff0c;校花网&#xff1a;http://www.xiaohuar.com 让你体验爬取校花的成就感。 …

深入Atlas系列:综合示例(1) - 调用服务器端方法时直接获得客户端具体类型...

摘要: 在使用ASP.NET AJAX时&#xff0c;大家对于返回服务器端的复杂类型的情况经常会遇到问题。Dflying兄写了一篇文章来说明在如何在客户端得到Sys.Preview.Data.DataTable对象的文章&#xff0c;但是这种方法需要在客户端进行Sys.Preview.Data.DataTable的构造&#xff0c;那…

1090 Highest Price in Supply Chain(甲级)

1090 Highest Price in Supply Chain (25分) A supply chain is a network of retailers&#xff08;零售商&#xff09;, distributors&#xff08;经销商&#xff09;, and suppliers&#xff08;供应商&#xff09;-- everyone involved in moving a product from supplier …