易采站长站为您分析C++归并算法,实例分析了C++实现基于归并算法合并线性表的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
本文实例讲述了C++归并算法。。具体如下:
- /* 归并算法:把两个或两个以上的线性表合并在一起,形成一个新的线性表
- 函数模版的基本使用 程序意图:将两个相同类型的线性表元素排好序,然后将他们组合成一个排好的线性表
- */ #include <iostream>
- using namespace std; const int n = 5; //5个元素
- //输出数据元素 template <class T1>
- void OutPut(T1 out[(2*n)]) {
- for (int i=0; i<(2*n); i++) {
- cout<<out[i]<<" "; }
- cout<<endl; }
- //输入数据元素 template <class T2>
- void InPut(T2 in[n]) {
- cout<<"请输入5个数据元素:"; for (int i=0; i<n; i++)
- { cin>>in[i];
- cout<<" "; }
- cout<<endl; }
- //模版函数 输入线性表元素并将其排序 template <class T3>
- void MySort(T3 a[2*n]) {
- int temp; //交换数据临时变量 //冒泡锚序
- for (int i=0; i<2*n-1; i++) {
- for (int j=0; j<2*n-1-i; j++) {
- if (a[j]>a[j+1]) {
- temp = a[j]; a[j] = a[j+1];
- a[j+1] = temp; }
- } }
- } //模版函数 归并
- template <class T> void MergeList(T La[n], T Lb[n], T Lc[(2*n)])
- { int i = 0; //作为La的下标
- int j = 0; //Lb下标 int k = 0; //Lc下标










