zoukankan      html  css  js  c++  java
  • 二分查找的 上边界和下边界 以及最接近上边界和最接近下边界的例子

    模板来自 www.acwing.com

    // 23132423543426561213.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
    //
    
    #include <iostream>
    #include <vector>
    
    
    using namespace std;
    
    
    int test1[] = {1,3,5,5,5,5,5,5,5,11,12,16,99,100};
    int test2[] = { 1,1,2,2,3,3,3,3,4,7,8,8,9,9,9,9,11,12,14,18,99,100 };
    
    
    void fun1(int arr[],int len )
    {
        int l = 0; int r = len - 1;
    
        while (l < r) {
            int mid = l + r >> 1;
            if (arr[mid] >= 5) r = mid;
            else l = mid + 1;
        }
        cout << "l = " << l << ".r = " << r << ". arr[l] = " << arr[l] << ". arr[r] = " << arr[r] << endl;
    
    
        l = 0; r = len  - 1;;
    
        while (l < r) {
            int mid = (l + r + 1) >> 1;
            if (arr[mid] <= 5) l = mid;
            else r = mid - 1;
        }
    
        cout << "l = " << l << ".r = " << r << ". arr[l] = " << arr[l] << ". arr[r] = " << arr[r] << endl;
    
    }
    
    
    int main()
    {
        //fun1(test1,sizeof(test1)/sizeof(test1[0]));
    
        fun1(test2, sizeof(test2) / sizeof(test2[0]));
    
    
        return 0;
    }
    作 者: itdef
    欢迎转帖 请保持文本完整并注明出处
    技术博客 http://www.cnblogs.com/itdef/
    B站算法视频题解
    https://space.bilibili.com/18508846
    qq 151435887
    gitee https://gitee.com/def/
    欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
    如果觉得不错,欢迎点赞,你的鼓励就是我的动力
    阿里打赏 微信打赏
  • 相关阅读:
    【bzoj2006】超级钢琴
    【bzoj4940】这是我自己的发明
    【arc076E】Connected?
    【agc004C】AND Grid
    选举
    几何
    打击目标
    【CF Gym100228】Graph of Inversions
    【CodeChef】Chef and Graph Queries
    大包子玩游戏
  • 原文地址:https://www.cnblogs.com/itdef/p/13162048.html
Copyright © 2011-2022 走看看