locate.cpp

来自「C++数值算法原书代码」· C++ 代码 · 共 23 行

CPP
23
字号
#include "nr.h"

void NR::locate(Vec_I_DP &xx, const DP x, int &j)
{
	int ju,jm,jl;
	bool ascnd;

	int n=xx.size();
	jl=-1;
	ju=n;
	ascnd=(xx[n-1] >= xx[0]);
	while (ju-jl > 1) {
		jm=(ju+jl) >> 1;
		if (x >= xx[jm] == ascnd)
			jl=jm;
		else
			ju=jm;
	}
	if (x == xx[0]) j=0;
	else if (x == xx[n-1]) j=n-2;
	else j=jl;
}

⌨️ 快捷键说明

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