在python中合并两个排序的项目列表

忍者

我的问题与找出合并2个已排序项目的不同方式有关?我试图找到一种简单的方法来合并2排序的项目。

def merge(arr1, arr2):
    return sorted(arr1 + arr2)

# Example: merge([1, 4, 7], [2, 3, 6, 9]) => [1, 2, 3, 4, 6, 7, 9]

我不确定是否要使其复杂化。这使用了内置函数,这意味着更难弄清实现细节。

我还发现我可以使用来自cypthon的heapq的merge()函数

想知道是否有使用其他方法的想法,例如:

在python中合并的要点

艾哈迈德·法亚兹(Ahmad Faiyaz)

由您决定使用哪种实施方式。考虑的是您需要干净的代码还是需要性能。

对于干净的代码,您可以使用:

  1. 已排序(l1 + l2)
  2. 从heappq合并

两者都具有复杂度O(nlogn)

而此实现是https://gist.github.com/Jeffchiucp/9dc2a5108429c4222fe4b2a25e35c778,算法复杂度为O(n)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章