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

合并数组算法(合并数组算法有哪些)include lt stdio h gt void DisplayArray int pArray int nLen for int i 0 i lt nLen i br br printf array d amp

大家好,我是讯享网,很高兴认识大家。

 #include <stdio.h>

void DisplayArray(int *pArray, int nLen)
{

for (int i &#61; 0; i &lt; nLen; &#43;&#43;i)<br /> {<br /> printf(&#34;array[%d] &#61; %d 

讯享网
讯享网}<br /> 

}

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

int i, j, n;<br /> 
讯享网i &#61; j &#61; n &#61; 0;<br /> while (i &lt; nLen1 &amp;&amp; j &lt; nLen2) // 循环一直进行到拷贝完某一个数组的元素为止<br /> {<br /> if (pArray1[i] &lt; pArray2[j]) // 拷贝array1的元素<br /> {<br /> pArray[n&#43;&#43;] &#61; pArray1[i&#43;&#43;];<br /> }<br /> else if (pArray1[i] &gt; pArray2[j]) // 拷贝array2的元素<br /> {<br /> pArray[n&#43;&#43;] &#61; pArray2[j&#43;&#43;]; <br /> }<br /> else // 相等的元素拷贝<br /> {<br /> pArray[n&#43;&#43;] &#61; pArray2[j&#43;&#43;]; <br /> &#43;&#43;i;<br /> }<br /> }<br /> 


讯享网

if (i &#61;&#61; nLen1) // 如果array1已经被拷贝完毕就拷贝array2的元素<br /> {<br /> while (j &lt; nLen2)<br /> pArray[n&#43;&#43;] &#61; pArray2[j&#43;&#43;];<br /> }<br /> else // 如果array2已经被拷贝完毕就拷贝array1的元素<br /> {<br /> while (i &lt; nLen1)<br /> pArray[n&#43;&#43;] &#61; pArray1[i&#43;&#43;];<br /> }<br /> 

}

int main()
{

讯享网int array1[] &#61; {1, 4, 5, 7};<br /> int array2[] &#61; {2, 3, 6, 8};<br /> int array3[8];<br /> MergeArray(array1, 4, array2, 4, array3);<br /> printf(&#34;Merge Array: 
DisplayArray(array3, 8);<br /> 
讯享网return 1;<br /> 
小讯
上一篇 2025-04-24 13:11
下一篇 2025-04-27 19:20

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/154774.html