sort2.cpp

来自「VC实现的常用数值计算方法」· C++ 代码 · 共 60 行

CPP
60
字号
void sort2(int n, double ra[], double rb[])
{
	int l,ir,i,j;
	double rra,rrb;
    l = n / 2 + 1;
    ir = n;
    do
	{
        if (l > 1)
		{
            l = l - 1;
            rra = ra[l];
            rrb = rb[l];
		}
        else
		{
            rra = ra[ir];
            rrb = rb[ir];
            ra[ir] = ra[1];
            rb[ir] = rb[1];
            ir = ir - 1;
            if (ir == 1)
			{
                ra[1] = rra;
                rb[1] = rrb;
                return;
            }
        }
        i = l;
        j = l + l;
        while (j <= ir)
		{
            if (j <= ir)
			{
				if (j < ir)
				{
                    if (ra[j] < ra[j + 1])
					{
						j = j + 1;
					}
                }
                if (rra < ra[j])
				{
                    ra[i] = ra[j];
                    rb[i] = rb[j];
                    i = j;
                    j = j + j;
				}
                else
				{
                    j = ir + 1;
                }
            }
        }
        ra[i] = rra;
        rb[i] = rrb;
    }while(1);
}

⌨️ 快捷键说明

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