c - 如何将两个数组组合成一个交替元素?

标签 c arrays algorithm sorting

假设您有递增数字的数组 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/

相关文章:

python - 骰子组合的标准差

c - 声明 -n 参数以在命令行中接受整数 - C

c - 找不到 emmake 和 emconfigure 命令 (osx)

python - 按多列对 numpy 二维数组进行排序

c - 将输入读入数组会导致分段违规

php - 如何通过 HTML 表单发送 PHP 数组(使用 input 标签)

java - 在数组中保存元素的算法保持顺序

将列表操作转换为基于索引的算法

c - 如何知道正在运行的后台进程是否核心

c - 释放内存时堆损坏 C