hunt.c
来自「国外的c数值算法书籍源程序(Numerical Recipes Source- 」· C语言 代码 · 共 49 行
C
49 行
void hunt(float xx[], unsigned long n, float x, unsigned long *jlo)
{
unsigned long jm,jhi,inc;
int ascnd;
ascnd=(xx[n] > xx[1]);
if (*jlo <= 0 || *jlo > n) {
*jlo=0;
jhi=n+1;
} else {
inc=1;
if (x >= xx[*jlo] == ascnd) {
if (*jlo == n) return;
jhi=(*jlo)+1;
while (x >= xx[jhi] == ascnd) {
*jlo=jhi;
inc += inc;
jhi=(*jlo)+inc;
if (jhi > n) {
jhi=n+1;
break;
}
}
} else {
if (*jlo == 1) {
*jlo=0;
return;
}
jhi=(*jlo)--;
while (x < xx[*jlo] == ascnd) {
jhi=(*jlo);
inc <<= 1;
if (inc >= jhi) {
*jlo=0;
break;
}
else *jlo=jhi-inc;
}
}
}
while (jhi-(*jlo) != 1) {
jm=(jhi+(*jlo)) >> 1;
if (x > xx[jm] == ascnd)
*jlo=jm;
else
jhi=jm;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?