如何将两个数组合并为一个交替元素?

yul*_*ian 3 c arrays sorting algorithm

假设您的数组arr [N]越来越多.你必须把它分成另外两个(左和右):

L = {0, 2, 4, 6, 8, 10, ...}

R = {1, 3, 5, 7, 9, 11, ...}
Run Code Online (Sandbox Code Playgroud)

以下算法执行此操作:

for ( i = 0; i < (N / 2) ; i++ )
    {
        L[i] = arr[2 * i + 0];
        R[i] = arr[2 * i + 1];
    }
Run Code Online (Sandbox Code Playgroud)

问题是:如何进行反向算法?

所以输出数组将是:

arr = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...}
Run Code Online (Sandbox Code Playgroud)

PS 我一直在思考它,但没有任何回忆:(

Car*_*rum 10

简单的解决方案就是彻底扭转现有的操作:

for (i = 0; i < (N / 2); i++)
{
    arr[2 * i + 0] = L[i];
    arr[2 * i + 1] = R[i];
}
Run Code Online (Sandbox Code Playgroud)