二分查找
来源:互联网 发布:mac怎么下lol 编辑:程序博客网 时间:2024/06/05 20:55
1、属类:静态查找(即只实现查找,不实现插入和删除,集合中的记录是固定的)
2、条件:有序性、连续存放在数组中(不能存放在链表中)
3、时间复杂度:O(logN)
4、操作顺序:
例:(查找成功)
例:(查找不成功)
(图源自陈越老师网易云课堂课件)
注意:left与right每次值的变化(即left=mid+1ORright=mid-1,
如果left和right的更新不是取mid+1和mid-1而是都取mid,程序是正确的);
mid的取值有余数时取整;
5、代码实现:
int BinarySearch(StaticTable *Tbl,ElementType K){//在表Tbl中查找关键字为K的数据元素 int left,right,mid,NoFound=-1; left=1; right=Tbl->Length; while(left<=right) { mid=(left+right)/2; if(K<Tbl->Element[mid]) right=mid-1; else if(K>Tbl->Element[mid]) left=mid+1; else return mid; } return NoFound;}
0 0
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- UTF-8编码规则
- hexo3添加百度统计
- J2SE——Java Web——Java EE企业应用学习路线
- vector 迭代器失效
- 详解僵尸进程与孤儿进程
- 二分查找
- Bzoj4205卡牌配对
- hbase1.3.0集群版详细安装及简单测试
- CSS设计彻底研究
- spring 配置<context:component-scan base-package=” ”/>
- AndroidStudio如何依赖Module dependency?
- android爬坑篇之第三方框架引用
- spring mvc RESTful 方式 拦截器
- SpringBoot实战 之 接口日志篇