给定两个排序的数组,任务是以排序的方式合并它们。
null
例如:
Input : arr1 = [1, 3, 4, 5] arr2 = [2, 4, 6, 8] Output : arr3 = [1, 2, 3, 4, 4, 5, 6, 8] Input : arr1 = [5, 8, 9] arr2 = [4, 7, 8] Output : arr3 = [4, 5, 7, 8, 8, 9]
此问题已有解决方案,请参考 合并两个排序的数组 链接我们将使用python解决这个问题 希普。合并() 在一行代码中。
# Function to merge two sorted arrays from heapq import merge def mergeArray(arr1,arr2): return list (merge(arr1, arr2)) # Driver function if __name__ = = "__main__" : arr1 = [ 1 , 3 , 4 , 5 ] arr2 = [ 2 , 4 , 6 , 8 ] print (mergeArray(arr1, arr2)) |
输出:
[1, 2, 3, 4, 4, 5, 6, 8]
heapq模的性质?
该模块提供了堆队列算法(也称为优先级队列算法)的实现。 要创建堆,请使用初始化为[]的列表,或者可以通过函数heapify()将填充的列表转换为堆。提供以下功能:
- 希普。堆堆(堆,项): 将值项推送到堆上,保持堆不变。
- 希普。堆(heap): 弹出并返回堆中最小的项,保持堆不变。如果堆是空的, 索引器 她长大了。要访问最小的项而不弹出它,请使用heap[0]。
- 希普。heappushpop(堆,项): 将项推送到堆上,然后弹出并返回堆中最小的项。组合操作的运行效率比单独调用heappush()后的heappush()更高。
- 希普。希皮菲(x): 在线性时间内就地将列表x转换为堆。
- 希普。合并(*iterables): 将多个已排序的输入合并到单个已排序的输出中(例如,合并多个日志文件中带有时间戳的条目)。返回排序值的迭代器。
本文由 沙申克·米什拉(古卢) .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。
如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END