将两个有序列表合并,并保持顺序(一)

列表l1,l2的长度很可能不一致

我们的思路是这样的:

首先要将L1,L2的元素一个一个地比较

我们可以每次拿出L1的一个元素,去和列表L2的每个元素作比较

然后插入到L2合适的位置

插入完毕在L1中将这个元素删除

这样就会出现一个问题

当L2有两个相同元素时,L1中比它大的元素插入到第一个的后面,就会出现差错

 

我们可以想一种其他的方法

每次取出L1,L2列表中的第一个元素作比较

把较小的元素添加到新列表,然后删除L1或L2中这个元素

这样循环比较的话,一定有一个列表先为空

然后把另一个列表的剩余元素全部追加到新列表中

 

第一种方法是拿一个元素有序插入到一个有序列表中

其本质是拆分与细化,由点到面,先做简单的事

 

第二种方法更像是武当派和少林寺的高手过招,两支队伍一个一个上阵,数量小代表武艺精,

每支队伍由强到弱派出选手,获胜的人去坐金交椅,失败的人留下来继续pk,直到将所有高手排出名次

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值