zoukankan      html  css  js  c++  java
  • 1152: 二分搜索

    1152: 二分搜索

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 2096  解决: 756
    [提交][状态][讨论版][命题人:admin]

    题目描述

    在有序序列中查找某一元素x。

    输入

    首先输入一个正整数n(n<=100000),表示该序列有n个整数,然后按从小到大的顺序输入n个整数;

    接着是一个正整数m,表示有m次查找;

    最后是m个整数,表示m个要查找的整数x。

    输出

    对于每一次查找,有一行输出。若序列中存在要查找的元素x,则输出元素x在序列中的序号(序号从0开始);若序列中不存在要查找的元素x,则输出"Not found!"。

    样例输入

    5
    1 3 5 7 9 
    11
    -1
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    

    样例输出

    Not found!
    0
    Not found!
    1
    Not found!
    2
    Not found!
    3
    Not found!
    4
    Not found!

    查找区间左闭右开
    #include<iostream>
    
    
    using namespace std ; 
    
    #define maxn 110000
    
    int n , m , x ;
    int num[maxn] ;  
    bool flag ; 
    int pos ; 
    
    void check(int start , int ends , int x){
        if(ends<start){
            return;
        }
        int mid = (start+ends)/2 ;
        if(num[mid] == x){
            pos = mid ; 
    
            flag = true ; 
            return; // 找到
        }else if(x<num[mid]){
            check(start , mid-1 , x) ; 
        }else if(x>num[mid]){
            check(mid+1 , ends , x) ; 
        }
    
    }
    
    int main(){
        cin>>n ; 
        for(int i=0 ; i<n ; i++){
            cin>>num[i] ; 
        }
        cin>>m ; 
        while(m--){
            cin>>x ; 
            flag = false ; 
            check( 0 , n , x) ; 
            if(flag==false){
                cout<<"Not found!"<<endl ; 
            }else{
                cout<<pos<<endl ; 
            }
        }
    
        return 0 ; 
    }
  • 相关阅读:
    JS,Jquery获取各种屏幕的宽度和高度
    mysql存储html代码之导出后无法导入问题
    php之简单socket编程
    php单点登录SSO(Single Sign On)的解决思路
    php读取邮件
    YII框架的依赖注入容器
    YII框架的行为
    YII框架的事件机制
    YII框架的模块化技术
    mysql的索引
  • 原文地址:https://www.cnblogs.com/yi-ye-zhi-qiu/p/8902505.html
Copyright © 2011-2022 走看看