合并和排序两个数组保持相对顺序
Merge and Sort two arrays maintaining relative order
假设我有两个数组 A & B{1,2,1,2}
和{2,1,2,1}
。
我想以这样一种方式对它们进行排序,在数组合并和排序后看起来像这样,
1,2,2,1,1,2,2,1
保持A和B的相对顺序!
这可以使用吗,std::sort()
?
如果不是,你会建议使用哪种方法?
更多澄清,
让数组 A 的索引1,2,3,4
,-4,-3,-2,-1
现在我不能丢失数组 A 和数组 B 的索引顺序,而是将它们合并在一起,以便最小化合并数组中连续元素的数量,
另一个例子,{3,4,4,5}
和{7,8,4,9,5}
排序为,
{3,7,8,4,4,9,5,5}
我们可以看到,这里的连续相同元素的组数为
"3"、"7"、"8"、"4、4"、"9"、"5、5">
我尝试了一个解决方案,但没有使用std::sort()
.我声明了一个保持下一个插入位置的变量,因此对于数组 B 中的每个数字,我遍历元素并搜索它是否存在于 A 中并将其插入下一个"插入"位置。
这是您要查找的代码类型吗?
vector<int> a = {1,2,1,2};
vector<int> b = {2,1,2,1};
vector<int> result;
int i = 0;
for (; i < min(a.size(),b.size()); i++){
result.push_back(a[i]);
result.push_back(b[i]);
}
if (i < a.size()) {
result.push_back(a[i]);
} else if (i < b.size()){
result.push_back(b[i]);
}
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组的地址分配给变量并删除
- 从C++本机插件更新Vector3数组
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 数组索引的值没有增加
- 将对象数组的引用传递给函数
- 为char数组调整zlib-zpipe
- 2D数组来自文本输入,中间有空格
- std::向量与传递值的动态数组
- 在c++中用vector填充一个简单的动态数组
- 使用strcpy将char数组的元素复制到另一个数组
- 使用指针从C++中的数组中获取最大值
- C++使用整数的压缩数组初始化对象
- 告诉一个 const char 数组,除了编译时 C 样式的字符串外,它不以 '