📜  合并两个排序的数组(1)

📅  最后修改于: 2023-12-03 14:50:40.037000             🧑  作者: Mango

合并两个排序的数组

在编写算法时,有时需要将两个已排序的数组合并为一个新的排序数组。这在许多应用中是非常常见的,例如归并排序和二路归并算法,因此了解如何合并排序数组是非常重要的。

以下是一种简单的方法来合并两个数组:

def merge_sorted_arrays(arr1, arr2):
    result = []
    i = j = 0

    while i < len(arr1) and j < len(arr2):
        if arr1[i] <= arr2[j]:
            result.append(arr1[i])
            i += 1
        else:
            result.append(arr2[j])
            j += 1

    while i < len(arr1):
        result.append(arr1[i])
        i += 1

    while j < len(arr2):
        result.append(arr2[j])
        j += 1

    return result

在上面的代码中,我们使用两个指针 ij 分别指向两个数组 arr1arr2 的开头,通过比较这两个指针所在的元素,将较小的元素添加到一个新的数组 result 中,并且逐步移动指针,直到遍历完数组。

最后,我们将剩余的元素添加到 result 中,返回最终的合并结果。

此外,还有其他的方法来合并两个排序数组,例如使用归并排序或者利用 Python 自带的 sorted() 函数等等。这取决于特定的应用场景和个人的喜好。