有两个有序数组,int nums1[ ] = { 1,2,3,0,0,0 }和int nums2[ ] = { 2,5,6 }。不开辟新空间的情况下将nums2数组中的内容合并到nums1中,结果为:nums1[ ] = { 1,2,2,3,5,6 },本文采用两种方法实现合并。
从两个数组的最后一位有效元素开始比较,大的元素拷贝到nums1的最后一位,并依次往前拷贝。具体操作如下:
代码实现:
运行结果:
首先元素插入数组的思想如下(假设数组后面都是0):
用代码实现就是从下标5的位置开始,把下标5的值赋给下标为6的元素,之后移动到下标为4处,将下标4的元素的值赋给下标为5的元素:
回到数组合并,合并的思路:两组数组都从头开始比较。
1.若nums2中的元素较小,则插到与nums1元素的前面。
2.若nums2中的元素较大且小于nums1的下一个元素,则插到nums1元素的后面。
3.若nums2中的元素都比nums1中的元素大,则直接将nums2中剩下的元素嫁接到nums1数组的后面即可。
代码实现:
运行结果:
虽然方法1要比方法2简单得多,但是方法2的插入元素的思路在c语言中的应用也很广泛,因此方法2的逻辑也很重要。另外如果本文对你起到了帮助,希望可以点赞👍+关注😎+收藏👌哦!如果有遗漏或者有误的地方欢迎大家在评论区补充~!!谢谢大家!!( ̄︶ ̄)↗
到此这篇合并数组c语言代码(合并有序数组c++语言)的文章就介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/cjjbc/16607.html