int main(){
    == key 
    int m;
    while ( l <= r ) {
        m = ( l + r ) >> 1;
        if ( x[m] == key ) return m;
        else if ( key > x[m] ) 
            l = m + 1;
        else
            r = m - 1; 
    }

    >= key 中最小的
    int ret;
    while ( l <= r ) {
        m = ( l + r ) >> 1;
        if ( x[m] >= key ) {
            ret = m;
            r = m - 1;  
        } else
            l = m + 1;
    }

    <= key 中最大的
    int ret;
    while ( l <= r ) {
        m = ( l + r ) >> 1;
        if ( x[m] <= key ) {
            ret = m;
            l = m + 1;  
        } else
            r = m - 1;
    }

}

相关文章:

  • 2021-09-04
  • 2021-10-31
  • 2021-12-24
  • 2022-12-23
  • 2022-12-23
  • 2021-10-05
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-01-18
  • 2022-12-23
  • 2022-12-23
  • 2021-06-18
相关资源
相似解决方案