Пример #1
0
void MergeSort2(vector< int >& vArr, int l, int u)
{
	if (l < u)
	{
		int m = (l + u) / 2;
		MergeSort2(vArr, l, m);
		MergeSort2(vArr, m + 1, u);
		Merge2(vArr, l, m, u);
	}
}
Пример #2
0
void MergePass(ElementType S[], ElementType TmpS[], long N, long length)
{
    long i, j;
    for (i = 0; i <= N - 2 * length; i += 2 * length)
    {
        Merge2(S, TmpS, i, i + length, i + 2 * length - 1);
    }
    if (i + length < N)
    {
        Merge2(S, TmpS, i, i + length, N - 1);
    }
    else
    {
        for (j = i; j < N; ++j)
        {
            TmpS[j] = S[j];
        }
    }
}