大家好,又见面了,我是你们的朋友全栈君。
展开全部
merge()是C++标准库的函数,主要实现函数的排序和合并,不仅仅是合并,具体要求参e5a48de588b63231313335323631343130323136353331333431373261照标准库。
#include”stdafx.h”
#include
#include
#include
#include
usingnamespacestd;
boolcomp(constinti,constintj){
returni>j;
}
intmain(void){
/*自定义谓词*/
std::arrayai1={1,3,4,5};
std::listlsti1;
for(constauto&i:ai1)
lsti1.push_front(i);//从大到小
std::arrayai2={2,6,7,8};
std::listlsti2;
for(constauto&i:ai2)
lsti2.push_front(i);
lsti1.merge(lsti2,comp);
std::cout<):”;
for(constauto&i:lsti1)
std::cout<
std::cout<<:endl>
/*默认谓词*/
std::arrayai1d={1,3,4,5};
std::listlsti1d;
for(constauto&i:ai1d)
lsti1d.push_back(i);//从小到大
std::arrayai2d={2,6,7,8};
std::listlsti2d;
for(constauto&i:ai2d)
lsti2d.push_back(i);
lsti1d.merge(lsti2d);
std::cout<
for(constauto&i:lsti1d)
std::cout<
std::cout<<:endl>
return0;
}
扩展资料
Merge算法的两种接口,把两个有序的数组合并到另一个数组中:
void Merge(int *A, int f, int m, int e){
int temp[e-f+1];
int i,first=f,last=m+1;
for(i=0;i
if(A[f]<=A[last]) {
temp[i]=A[f];
f++;
}
else {
temp[i]=A[last];
last++;
}
}
while(f>m&&last<=e){
temp[i]=A[last];
i++;
last++;
}
while(f<=m&&last>e){
temp[i]=A[f];
i++;
f++;
}
for(i=0;first<=e;i++,first++){
A[first]=temp[i];
}
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/131873.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...