SCL--二分与lower_bound / upper_bound

2016-07-13 19:20:06

使用手写二分实现lower_bound与upper_bound:

lower_bound: 第一个 >= v 的位置。

upper_bound: 第一个 > v 的位置。

lower_bound:

int l = 1,r = n,ans;
    while(l < r){
        int mid = getmid(l,r);
        if(A[mid] < v) l = mid + 1;
        else r = mid;
    }
    ans = l;

 

upper_bound:

写法1:

int l = 1,r = n,ans;
    while(l <= r){
        int mid = getmid(l,r);
        if(A[mid] <= v) l = mid + 1;
        else r = mid - 1;
    }
    ans = l;

写法2:

int l = 1,r = n,ans;
    while(l < r){
        int mid = getmid(l,r);
        if(A[mid] <= v) l = mid + 1;
        else r = mid;
    }
    if(A[l] <= v) l++;
    ans = l;

 

转载于:https://www.cnblogs.com/naturepengchen/articles/5668020.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这些引脚功能可以整理如下: - WKUP: 外部唤醒输入 - USART2_CTS: USART2 软件流控制信号 - ADC12_IN0: ADC12 输入通道 0 - TIM2_CH1_ETR: 定时器 2 通道 1 和外部时钟输入 - USART2_RTS: USART2 请求发送控制信号 - ADC12_IN1: ADC12 输入通道 1 - TIM2_CH2: 定时器 2 通道 2 - USART2_TX: USART2 发送数据引脚 - ADC12_IN2: ADC12 输入通道 2 - TIM2_CH3: 定时器 2 通道 3 - USART2_RX: USART2 接收数据引脚 - ADC12_IN3: ADC12 输入通道 3 - TIM2_CH4: 定时器 2 通道 4 - SPI1_NSS: SPI1 片选信号 - USART2_CK: USART2 时钟引脚 - ADC12_IN4: ADC12 输入通道 4 - SPI1_SCK: SPI1 时钟引脚 - ADC12_IN5: ADC12 输入通道 5 - SPI1_MISO: SPI1 主输入从输出引脚 - ADC12_IN6: ADC12 输入通道 6 - TIM3_CH1: 定时器 3 通道 1 - SPI1_MOSI: SPI1 主输出从输入引脚 - ADC12_IN7: ADC12 输入通道 7 - TIM3_CH2: 定时器 3 通道 2 - ADC12_IN8: ADC12 输入通道 8 - TIM3_CH3: 定时器 3 通道 3 - ADC12_IN9: ADC12 输入通道 9 - TIM3_CH4: 定时器 3 通道 4 - I2C2_SCL: I2C2 时钟引脚 - USART3_TX: USART3 发送数据引脚 - I2C2_SDA: I2C2 数据引脚 - USART3_RX: USART3 接收数据引脚 - SPI2_NSS: SPI2 片选信号 - I2C2_SMBAI: I2C2 SMBus 警告引脚 - USART3_CK: USART3 时钟引脚 - TIM1_BKIN: 定时器 1 备份输入 - SPI2_SCK: SPI2 时钟引脚 - USART3_CTS: USART3 软件流控制信号 - TIM1_CH1N: 定时器 1 通道 1 互补输出 - SPI2_MISO: SPI2 主输入从输出引脚 - USART3_RTS: USART3 请求发送控制信号 - TIM1_CH2N: 定时器 1 通道 2 互补输出 - SPI2_MOSI: SPI2 主输出从输入引脚 - TIM1_CH3N: 定时器 1 通道 3 互补输出 - USART1_CK: USART1 时钟引脚 - TIM1_CH1: 定时器 1 通道 1 - MCO: 主时钟输出引脚 - USART1_TX: USART1 发送数据引脚 - TIM1_CH2: 定时器 1 通道 2 - USART1_RX: USART1 接收数据引脚 - TIM1_CH3: 定时器 1 通道 3 - USART1_CTS: USART1 软件流控制信号 / USBDM / CAN_RX / 定时器 1 通道 4 - USBDP: USBDP / CAN_TX / 定时器 1 外部时钟输入 - TIM1_CH4: 定时器 1 通道 4 - I2C1_SMBAI: I2C1 SMBus 警告引脚 - I2C1_SCL: I2C1 时钟引脚 / 定时器 4 通道 1 - I2C1_SDA: I2C1 数据引脚 / 定时器 4 通道 2 - TIM4_CH3: 定时器 4 通道 3 - TIM4_CH4: 定时器 4 通道 4

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值