二分查找 【数组的二分查找】

本人水平有限,题解不到为处,请多多谅解

本蒟蒻谢谢大家观看

1083: 数组的二分查找

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 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);
}

 

原文链接: https://www.cnblogs.com/nlyzl/p/11357152.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    二分查找 【数组的二分查找】

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/301023

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月15日 下午9:53
下一篇 2023年2月15日 下午9:55

相关推荐