博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二分查找算法
阅读量:5263 次
发布时间:2019-06-14

本文共 926 字,大约阅读时间需要 3 分钟。

二分查找

进行二分查找的前提是序列已经有序,二分查找的时间复杂度为O(lgn)。每次和中间的数字进行比较,如果比较的数比中间的大,就在右边查找,小就在左边查找。

具体实现

#include 
#include
using namespace std;class Solution {public: int binary_search(vector
& vec, int start, int end, int value) { if (start > end) { return -1; } int middle = (start + end) / 2; if (value == vec[middle]) { return middle; } else if (value < vec[middle]) { return binary_search(vec, start, middle - 1, value); } else if (value > vec[middle]) { return binary_search(vec, middle + 1, end, value); } }};int main() { int arr[] = {1, 2, 2, 3, 4, 5, 6, 7, 7, 100}; vector
vec(arr, arr+10); Solution* solution = new Solution(); cout << solution->binary_search(vec, 0, 9, 100) << endl; return 0;}

转载于:https://www.cnblogs.com/zhonghuasong/p/6541679.html

你可能感兴趣的文章
composer 报 zlib_decode(): data error
查看>>
linux下WPS的使用
查看>>
Web Api 利用 cors 实现跨域
查看>>
hdu 3938 并查集
查看>>
instanceof
查看>>
BZOJ 题目1036: [ZJOI2008]树的统计Count(Link Cut Tree,改动点权求两个最大值和最大值)...
查看>>
《深入分析Java Web技术内幕》读书笔记之JVM内存管理
查看>>
python之GIL release (I/O open(file) socket time.sleep)
查看>>
2015/8/4 告别飞思卡尔,抛下包袱上路
查看>>
软件开发与模型
查看>>
161017、SQL必备知识点
查看>>
kill新号专题
查看>>
MVC学习系列——Model验证扩展
查看>>
C# GC 垃圾回收机制
查看>>
mysqladmin 修改和 初始化密码
查看>>
字符串
查看>>
vue2.x directive - 限制input只能输入正整数
查看>>
实现MyLinkedList类深入理解LinkedList
查看>>
自定义返回模型
查看>>
C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 客户端多网络支持
查看>>