二分查找 数组的二分查找
Posted nlyzl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分查找 数组的二分查找相关的知识,希望对你有一定的参考价值。
本人水平有限,题解不到为处,请多多谅解
本蒟蒻谢谢大家观看
1083: 数组的二分查找
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 1646 Solved: 641
[Submit][Status][Web Board]
Description
在1500个整数中查整数x的位置,这些数已经从小到大排序了。若存在则输出其位置,若不存在则输出-1。
Input
第一行,一个整数x 后面1500行,每行一个整数
Output
一个整数(表示x的位置,若不存在则输出-1)
Sample Input
5
1
2
5
7
.....
Sample Output
3
HINT
二分查找的模板
code:
#include<bits/stdc++.h> using namespace std; int x; int a[1501]; int main() int left=1,right=1500,mid,find=-1; cin>>x; for(int i=1;i<=1500;i++) cin>>a[i]; while(left<=right) mid=(left+right)/2; if(a[mid]==x) find=mid; break; if(a[mid]<x) left=mid+1; if(a[mid]>x) right=mid-1; cout<<find; //freopen("yzlak.in","r",stdin); //freopen("yzlak.out","w",stdout);
以上是关于二分查找 数组的二分查找的主要内容,如果未能解决你的问题,请参考以下文章
算法二分法 ② ( 排序数组中查找目标值 | 二分法的经典写法 | 在排序数组中查找元素的最后一个位置 | 二分法的通用模板 )