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驱动爱好者 服务器程序员沟通交流
    如果觉得不错,欢迎点赞,你的鼓励就是我的动力
    阿里打赏 微信打赏
  • 相关阅读:
    python之redis
    redis 双写一致性问题
    MySQL主从复制与读写分离
    高并发下Redis如何保持数据一致性(避免读后写)
    redis的no-appendfsync-on-rewrite参数
    Redis基础、高级特性与性能调优
    python连接redis sentinel集群
    ListView阻尼效果
    零基础学python-5.6 数字位操作与其它工具
    iOS 实现QQ界面
  • 原文地址:https://www.cnblogs.com/itdef/p/13162048.html
Copyright © 2011-2022 走看看