当前位置:网站首页 > 编程语言 > 正文

合并数组算法(合并数组算法有哪些)



#include

void DisplayArray(int *pArray, int nLen)
{
for (int i = 0; i < nLen; ++i)
{
printf("array[%d] = %d ", i, pArray[i]);
}
}

// pArray1和pArray2是已经排好序的数组,要求将它们按照顺序合并到pArray中
// 排序之后的数组不会有重复的元素
void MergeArray(int *pArray1, int nLen1, int *pArray2, int nLen2, int *pArray)
{
int i, j, n;

i = j = n = 0;
while (i < nLen1 && j < nLen2) // 循环 一直进行到 拷贝完某 一个数组的元素为止
{
if (pArray1[i] < pArray2[j]) // 拷贝array1的元素
{
pArray[n++] = pArray1[i++];
}
else if (pArray1[i] > pArray2[j]) // 拷贝array2的元素
{
pArray[n++] = pArray2[j++];
}
else // 相等的元素拷贝
{
pArray[n++] = pArray2[j++];
++i;
}
}

if (i == nLen1) // 如果array1已经被拷贝完毕就拷贝array2的元素
{
while (j < nLen2)
pArray[n++] = pArray2[j++];
}
else // 如果array2已经被拷贝完毕就拷贝array1的元素
{
while (i < nLen1)
pArray[n++] = pArray1[i++];
}
}

int main()
{
int array1[] = {1, 4, 5, 7};
int array2[] = {2, 3, 6, 8};
int array3[8];
MergeArray(array1, 4, array2, 4, array3);
printf("Merge Array: ");
DisplayArray(array3, 8);

return 1;
}











































































































































































到此这篇合并数组算法(合并数组算法有哪些)的文章就介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 增删改查是什么意思网络用语(增删改查的改是什么)2026-05-07 16:54:05
  • 手机wifi反复断开连接是不是手机坏了(手机wi-fi经常断开)2026-05-07 16:54:05
  • 易梯认证码怎么获取(易梯认证码的三个图片)2026-05-07 16:54:05
  • xvive是啥牌子(xvh是什么牌子)2026-05-07 16:54:05
  • 流量回放是什么意思啊(流量回放是什么意思啊苹果手机)2026-05-07 16:54:05
  • 域名解析二级域名(域名解析到二级域名)2026-05-07 16:54:05
  • 海尔电视查看本机型号(怎么查海尔电视机型号)2026-05-07 16:54:05
  • 字符串转为int(字符串转为日期)2026-05-07 16:54:05
  • 合并数组区间(合并数组区间怎么求)2026-05-07 16:54:05
  • 谷歌向手机发送验证码失败(谷歌发送验证码不能输入中国号码)2026-05-07 16:54:05
  • 全屏图片