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


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

    本蒟蒻谢谢大家观看

    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);
    }
  • 相关阅读:
    spring boot 与 spring cloud 版本映射
    Java锁
    并发编程(二)
    并发工具类和线程池
    并发编程
    Map双列集合(二)
    Map双列集合(一)
    单列集合List
    类加载
    JVM字节码与代码优化
  • 原文地址:https://www.cnblogs.com/nlyzl/p/11357152.html
Copyright © 2020-2023  润新知