kstwo.cpp

来自「工程算法 这是一个很有用的工程数值算法集锦」· C++ 代码 · 共 55 行

CPP
55
字号
void kstwo(double data1[],int n1,double data2[],int n2,double& d,double& prob)
{
    sort(n1, data1);
    sort(n2, data2);
    int en1 = n1;
    int en2 = n2;
    int j1 = 1;
    int j2 = 1;
    double am,fn1,fo1 = 0.0;
    double dt,fn2,fo2 = 0.0;
    d = 0.0;
    while(j1 <= n1 && j2 <= n2)
	{
        if (data1[j1] < data2[j2])
		{
            fn1 = (double)j1 / (double)en1;
            if (fabs(fn1 - fo2) > fabs(fo1 - fo2))
			{
                am = fabs(fn1 - fo2);
			}
            else
			{
                am = fabs(fo1 - fo2);
            }
            dt = am;
            if (dt > d)
			{
				d = dt;
			}
            fo1 = fn1;
            j1 = j1 + 1;
		}
        else
		{
            fn2 = (double)j2 / (double)en2;
            if (fabs(fn2 - fo1) > fabs(fo2 - fo1))
			{
                am = fabs(fn2 - fo1);
			}
            else
			{
                am = fabs(fo2 - fo1);
            }
            dt = am;
            if (dt > d)
			{
				d = dt;
			}
            fo2 = fn2;
            j2 = j2 + 1;
        }
    }
    prob = probks(sqrt((double)en1 * (double)en2 / (en1 + en2)) * d);
}

⌨️ 快捷键说明

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