16rbkey.c

来自「常用算法程序集(c语言描述) 第三版.rar」· C语言 代码 · 共 27 行

C
27
字号

  int rbkey(p,n,a,b,m)
  int n,*m;
  BISERCH *p[];
  double  a,b;
  { int i,j,k;
    i=1; j=n;
    while (i<=j)
      { k=(i+j)/2;
        if (((*p[k-1]).KEY>=a)&&((*p[k-1]).KEY<=b))
          { i=k-1; j=0;
            while ((i>=0)&&((*p[i]).KEY>=a)) 
                { i=i-1; j=j+1;}
            i=i+1;
            while ((k<=n-1)&&((*p[k]).KEY<=b)) 
                { k=k+1; j=j+1;}
            *m=j; return(i);
          }
        if ((*p[k-1]).KEY>b) j=k-1;
        else i=k+1;
      }
    while ((i>=0)&&(b<(*p[i]).KEY)) i=i-1;
    i=i+1; *m=0;
    return(i);
  }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?