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

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

 
二分查找的基本思想:

是将n个元素分成大致相等的两部分,取arr[n/2]与target做比较,如果target=arr[n/2],则找到target,算法中止;如果target<arr[n/2],则只要在数组arr的左半部分继续搜索target,如果target>arr[n/2],则只要在数组arr的右半部搜索target.

优点:
查找速度快
缺点:
待查表为有序表
代码实现:

1 #include 
2 using namespace std; 3 //二分查找法查找有序数组arr中的target元素 4 //如果找到target元素,返回相应的索引index 5 template
6 int binarySearch(T arr[],int n ,T target){ 7 //arr[l......r] 8 int l = 0 ,r = n-1; 9 while( l <= r ){10 //int mid = (l+r)/2;11 int mid = l+(r-l)/2;12 if (arr[mid] == target)13 return mid; 14 if(target < arr[mid])15 r = mid - 1;16 else 17 l = mid +1;18 }19 return -1; 20 } 21 int main() {22 return 0;23 }

 

转载于:https://www.cnblogs.com/Tom-shushu/p/10067736.html

你可能感兴趣的文章
[NHibernate]集合类(Collections)映射
查看>>
MySQL新建用户,授权,删除用户,修改密码
查看>>
[Head First设计模式]生活中学设计模式——组合模式
查看>>
ls命令具有一个-r选项,可以递归的列出子目录中的内容。请编写一个具有同样功能的程序。...
查看>>
当你打开网页的时候,世界都发生了什么(1)
查看>>
虚拟化技术(1)——介绍
查看>>
[J2ME Q&A]untrusted domain is not configured问题回应
查看>>
手把手教你制作easyUI+bootstrap工作站,主要学习tabs方法
查看>>
python基础学习笔记(九)
查看>>
BaaS API 设计规范
查看>>
bootloader功能介绍/时钟初始化设置/串口工作原理/内存工作原理/NandFlash工作原理...
查看>>
UIKit框架类层次图
查看>>
UIKit 框架之UIControl
查看>>
swift中变量的几种类型
查看>>
[翻译] SoundManager 音频管理器
查看>>
【Oracle】并行等待之PX Deq Credit: need buffer
查看>>
iOS开发UI篇—Quartz2D使用(矩阵操作)
查看>>
第8章 私服nexus
查看>>
网站建设对于哪些刚起步的企业是有必要的
查看>>
【SICP练习】123 练习3.54
查看>>