深入了解C++算法之merge

开课吧开课吧锤锤2021-08-10 18:16

merge是建立在归并操作上的一种有效的排序算法。它将多个排序列表作为输入并生成单个列表作为输出,包含按排序顺序排列的输入列表的所有元素。

深入了解C++算法之merge 

归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(DivideandConquer)的一个非常典型的应用。  

将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为2-路归并。  

功能描述:  

两个容器元素合并,并存储到另一个容器中  

函数原型:  

merge(iteratorbeg1,iteratorend1,iteratorbeg2,iteratorend2,iteratordest);  

//容器元素合并,并存储到另一个容器中  

//注意:两个容器必须是有序的  

//beg1容器1开始迭代器  

//end1容器1结束迭代器  

//beg2容器2开始迭代器  

//end2容器2结束迭代器  

//dest目标容器开始迭代器  

代码示例:  

#include<iostream>

#include<vector>

#include<algorithm>

using namespace std;

void myPrint(int val)
{

       cout << val << " ";

}

void test01()
{

       vector<int>v1;

       vector<int>v2;

       for (int i = 0; i < 10; i++)

       {

              v1.push_back(i);

              v2.push_back(i + 1);

       }

       //目标容器

       vector<int>vTarrget;

       //提前给目标容器分配空间

       vTarrget.resize(v1.size() + v2.size());

       merge(v1.begin(), v1.end(), v2.begin(), v2.end(), vTarrget.begin());

       for_each(vTarrget.begin(), vTarrget.end(), myPrint);

       cout << endl;

}

int main()
{

       test01();

       system("pause");

       return 0;

}

总结:merge合并的两个容器必须是有序序列

点击图片免费领取课程。  

深入了解C++算法之merge

以上就是开课吧广场小编为大家整理发布的“深入了解C++算法之merge”一文,更多C++教程相关内容尽在开课吧C++教程频道。

免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用。如涉及版权问题,请联系本站管理员予以更改或删除。
有用
分享