二分查找法
来源:互联网 发布:广东联通宽带提速软件 编辑:程序博客网 时间:2024/05/16 15:23
二分查找法(折半查找):
二分查找法主要是解决在“一堆数中找出指定的数”这类问题
复杂度:O(logn)
使用二分查找法的条件:
(1)、存储在数组中;
(2)、有序排列(升序或降序都可以)
二分查找的效率:
1000个数据,约10次找出;
1e6(100万)个数据,约20次找出;
1e9个数据,约30次找出;
2^n个数据,约n次
* 给定一个已排序的整数数组(升序)和一个要查找的整数value, * 用O(logn)的时间查找到value第一次出现的下标(从0开始), * 如果value不存在于数组中,返回 -1。
#include<cstdio>#include<cstdlib>#include<cmath>#include<cstring>#include<algorithm>#include<iostream>using namespace std;int a[10],n;int Search(int value){int L=1,R=n,ans=-1;while(L<=R){int mid=(L+R)>>1;if(a[mid]<value) L=mid+1;else if(a[mid]>value) R=mid-1;else{ ans = mid; return ans; }}return ans;}int main(){int find_num,index;scanf("%d",&find_num);scanf("%d",&n);for(int i=1; i<=n; ++i) scanf("%d",&a[i]);index = Search(find_num); if(index==-1) printf("NO\n"); else printf("%d\n",index);return 0;}
阅读全文
1 0
- 查找----二分查找法
- 二分查找法,查找string
- 二分查找法
- 二分查找法
- 二分查找法
- 二分查找法
- java 二分查找法
- 二分查找法
- 二分查找法
- 二分查找法
- 二分查找法
- java:二分查找法
- C++ 二分查找法
- 二分查找法
- 【二分查找法】
- php二分查找法
- 二分查找法
- 二分查找法
- 双11背后那些事儿
- TextView部分内容改变颜色,背景色,大小,字体,超链接,删除线,下划线,添加图片
- 解决谷歌浏览器input密码框自动填充
- PAT甲级 1048. Find Coins (25)
- Excel表格中两列数据对比,找出异同的数据
- 二分查找法
- 测试人眼中的车联网(比亚迪云服务-3.2.1)——缺少的三大功能
- sql递归查询
- 运营商宽带网速为什么用bit而不用byte
- 路由器和交换机区别
- 欢迎使用CSDN-markdown编辑器
- 数据库常用命令
- TCP长连接和短连接的区别
- STM32串口使用心得(二)——串口溢出中断(ORE)