假设您有递增数字的数组 arr[N]。你必须将它分成另外两个(左和右):
L = {0, 2, 4, 6, 8, 10, ...}
R = {1, 3, 5, 7, 9, 11, ...}
以下算法执行此操作:
for ( i = 0; i < (N / 2) ; i++ )
{
L[i] = arr[2 * i + 0];
R[i] = arr[2 * i + 1];
}
问题是:反向算法怎么做?
所以输出数组将是:
arr = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...}
附言 我一直在想很多,但没有任何反应:(
最佳答案
简单的解决方案就是直接反转您现有的操作:
for (i = 0; i < (N / 2); i++)
{
arr[2 * i + 0] = L[i];
arr[2 * i + 1] = R[i];
}
关于c - 如何将两个数组组合成一个交替元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16725139/