c++ merge如何與排序算法配合

c++
小樊
82
2024-07-12 15:41:30

在C++中,可以使用標(biāo)準(zhǔn)庫(kù)中的sort算法對(duì)數(shù)組進(jìn)行排序,然后使用merge算法將兩個(gè)有序數(shù)組合并成一個(gè)有序數(shù)組。以下是一個(gè)示例代碼:

#include <iostream>
#include <vector>
#include <algorithm>

void merge(std::vector<int>& arr1, std::vector<int>& arr2, std::vector<int>& result) {
    std::merge(arr1.begin(), arr1.end(), arr2.begin(), arr2.end(), std::back_inserter(result));
}

int main() {
    std::vector<int> arr1 = {2, 4, 6, 8, 10};
    std::vector<int> arr2 = {1, 3, 5, 7, 9};

    // 對(duì)兩個(gè)數(shù)組進(jìn)行排序
    std::sort(arr1.begin(), arr1.end());
    std::sort(arr2.begin(), arr2.end());

    std::vector<int> result;

    // 合并兩個(gè)有序數(shù)組
    merge(arr1, arr2, result);

    // 輸出合并后的數(shù)組
    for (int num : result) {
        std::cout << num << " ";
    }

    return 0;
}

在上面的示例中,我們首先對(duì)兩個(gè)數(shù)組arr1和arr2進(jìn)行排序,然后使用merge函數(shù)將它們合并成一個(gè)有序數(shù)組result。最后,我們遍歷輸出合并后的數(shù)組結(jié)果。

0