hunt.cpp
来自「7种插值算法的c++代码实现」· C++ 代码 · 共 52 行
CPP
52 行
void hunt(double xx[], int n,double x, int& jlo)
{
int lhi,inc,jm;
int ascnd = xx[n] > xx[1];
if( (jlo<= 0 )|| (jlo > n))
{
jlo = 0;
lhi = n + 1;
goto loop3;
}
inc= 1;
if( (x >= xx[jlo] )&& ascnd )
{
loop1: lhi = jlo + inc;
if (lhi > n )
lhi= n + 1;
else
if ((x >= xx[lhi] )&& ascnd )
{
jlo= lhi;
inc = inc + inc;
goto loop1;
}
}
else
{
lhi = jlo;
loop2: jlo = lhi - inc;
if (jlo < 1 )
jlo = 0;
else
{
if((x < xx[jlo] )&& ascnd )
{
lhi = jlo;
inc = inc + inc;
goto loop2;
}
}
}
loop3: if(( lhi - jlo) == 1 )
return;
jm = (lhi + jlo)/ 2;
if( (x > xx[jm] )&& ascnd)
jlo= jm;
else
lhi = jm;
goto loop3;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?