[关闭]
@Scrazy 2017-03-21T11:10:47.000000Z 字数 603 阅读 1072

合并两个有序列表

python 算法


合并两个有序列表,刚看到这个题时,脑子里冒出的就是归并排序。应该比归并排序还要简单。下面就撸撸代码!

  1. # coding= utf-8
  2. def merge_two_order_list(seq1, seq2):
  3. rst = []
  4. while len(seq1) > 0 and len(seq2) > 0:
  5. if seq1[-1] > seq2[-1]:
  6. rst.append(seq1.pop())
  7. else:
  8. rst.append(seq2.pop())
  9. rst.extend(list(reversed(seq1)))
  10. rst.extend(list(reversed(seq2)))
  11. rst.reverse()
  12. return rst

还有递归版本

  1. # coding= utf-8
  2. def merge_two_list_recursion(seq1, seq2, rst=None):
  3. if rst is None:
  4. rst = []
  5. if len(seq1) == 0 or len(seq2) == 0:
  6. rst.extend(list(reversed(seq1)))
  7. rst.extend(list(reversed(seq2)))
  8. return rst
  9. if seq1[-1] > seq2[-1]:
  10. rst.append(seq1.pop())
  11. else:
  12. rst.append(seq2.pop())
  13. return merge_two_list_recursion(l1, l2, rst)
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注