二分搜索技术
来源:互联网 发布:淘宝售后时限 编辑:程序博客网 时间:2024/05/21 10:07
问题描述
给定已排好序的n个元素a[0:n-1],现要在这个n个元素中找到一个特定元素x。
算法思想
利用元素间的次序关系,采用分治策略,可在最坏情况下用O(logn)时间完成搜索任务。
将n个元素分成个数大致相同的两半,取a[n/2]与x做比较。
如果x = a[n/2],则找到x,算法终止;
如果x < a[n/2],则只要在数组a的左半部继续搜索x;
如果x > a[n/2],则只要在数组a的右半部继续搜索x。
template< class Type>int BinarySearch(Type a[],const Type& x, int n){ int left =0;int right = n-1; while(left <= right){ int middle = (left + right)/2; if(x == a[middle]) return middle; if(x > a[middle]) left = middle + 1; else right == middle - 1; } return -1;}
每执行一次算法的while循环,待搜索数组的大小减小一半。因此,在最坏情况下,while循环被执行了O(logn)次。
阅读全文
0 0
- 二分搜索技术
- 2.1 二分搜索技术
- 二分搜索技术
- 模板:二分搜索技术
- 二分搜索技术
- 分治法---二分搜索技术
- 动态数组 选择排序 二分搜索技术
- 二分搜索技术(分治法)
- 分治策略之二分搜索技术
- 算法实现(3)二分搜索技术
- 经典算法之二分搜索技术
- 经典算法之二分搜索技术
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- Kalman Filter
- linux ksm 内存 merge机制研究
- 网站Web业务架构从小到大演变
- [LeetCode] 105. Construct Binary Tree from Preorder and Inorder Traversal
- JavaScript节流函数, 防止大量函数触发解决办法
- 二分搜索技术
- axis ptz ros节点
- kafka-Patition下的Leader与Follower的切换
- ON1 Photo RAW 2017(RAW格式图片处理工具)官方正式版V12.0.0.4006下载 | on1 photo raw 破解版下载
- 机器视觉中如何选择工业相机与合适的相机镜头(how to choose camera and lens)
- UDP与TCP
- Oracle数据库中的常用的方法及对表的操作
- 秒杀系统架构分析与实战
- 操作系统实验 内核裁剪以及系统调用