将两个升序数组c语言,[求助]已知两个升序序列,将它们合并成一个升序序列并输出...

[求助]已知两个升序序列,将它们合并成一个升序序列并输出

已知两个升序序列,将它们合并成一个升序序列并输出

我思考拉!应该有两种方法啊!

一种是判断两个序列的元素,两个元素中小的就先进新的数组,一直判断完两个序列为止。

另一种是把两个数列合并,再用徘序法啊!

由于我初学还写不出程序啊!就想大家帮帮忙啊!写个程序给小弟!

而且我还想知道两种方法哪个更好啊!运行的快!或者有更好的方法啊!

搜索更多相关的解决方案:

序列  输出

----------------解决方案--------------------------------------------------------

你第一种思路就是归并排序,示例按从小到大排,需要归并的两个数组已经按从小到大排序完毕

int* merge(int* list1,int list1_length,int* list2,list2_length)

{

int new_list[list1_length+list2_length];

int i,j,k;

i=0;j=0;k=0;

while (i

{

if (list1[i]

new_list[k++]=list1[i++];

if (list1[i]==list2[j])

{

new_list[k++]=list1[i++];

new_list[k++]=list2[j++];

}

if (list1[i]>list2[j])

new_list[k++]=list2[j++];

}

while (i

new_list[k++]=list1[i++];

while (j

new_list[k++]=list2[j++];

return new_list;

}

----------------解决方案--------------------------------------------------------

那第二种方法啊!能不能也写个给我啊!

----------------解决方案--------------------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值