📅  最后修改于: 2023-12-03 15:22:57.545000             🧑  作者: Mango
在编程中,有时候需要将多个有序的数组合并成一个有序数组。合并K个排序的数组就是这样一种问题,它的输入是K个有序的数组,输出是一个有序数组。本文将介绍如何使用分而治之的方法解决这个问题。
下面是Python实现示例代码:
def merge_arrays(arrays):
n = len(arrays)
if n == 1:
return arrays[0]
elif n == 2:
return merge_two_arrays(arrays[0], arrays[1])
else:
mid = n // 2
left = merge_arrays(arrays[:mid])
right = merge_arrays(arrays[mid:])
return merge_two_arrays(left, right)
def merge_two_arrays(a, b):
m = len(a)
n = len(b)
i = j = 0
result = []
while i < m and j < n:
if a[i] < b[j]:
result.append(a[i])
i += 1
else:
result.append(b[j])
j += 1
result += a[i:]
result += b[j:]
return result