首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在c++中合并两个排序数组。

在C++中合并两个排序数组可以使用归并排序的思想来实现。具体步骤如下:

  1. 创建一个新的数组,用于存储合并后的结果。
  2. 定义两个指针分别指向两个排序数组的起始位置。
  3. 比较两个指针所指向的元素,将较小的元素放入新数组中,并将对应指针向后移动一位。
  4. 重复步骤3,直到其中一个数组的元素全部放入新数组中。
  5. 将剩余未放入新数组的数组的元素依次放入新数组中。
  6. 返回新数组作为合并后的排序数组。

这种方法的时间复杂度为O(m+n),其中m和n分别为两个排序数组的长度。

以下是一个示例代码:

代码语言:txt
复制
#include <iostream>
#include <vector>

std::vector<int> mergeSortedArrays(const std::vector<int>& arr1, const std::vector<int>& arr2) {
    std::vector<int> merged;
    int i = 0, j = 0;
    
    while (i < arr1.size() && j < arr2.size()) {
        if (arr1[i] <= arr2[j]) {
            merged.push_back(arr1[i]);
            i++;
        } else {
            merged.push_back(arr2[j]);
            j++;
        }
    }
    
    while (i < arr1.size()) {
        merged.push_back(arr1[i]);
        i++;
    }
    
    while (j < arr2.size()) {
        merged.push_back(arr2[j]);
        j++;
    }
    
    return merged;
}

int main() {
    std::vector<int> arr1 = {1, 3, 5, 7};
    std::vector<int> arr2 = {2, 4, 6, 8};
    
    std::vector<int> merged = mergeSortedArrays(arr1, arr2);
    
    for (int num : merged) {
        std::cout << num << " ";
    }
    
    return 0;
}

这段代码将两个已排序的数组arr1arr2合并为一个新的排序数组,并输出结果。你可以根据实际情况修改输入的数组和输出的方式。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券