【发布时间】:2016-02-28 11:12:18
【问题描述】:
我有一个这样的 int 向量向量:
std::vector<std::vector<int>> vec_vec{{3,5,1,6},{2,4},...};
结果应该是
Case1: {{1, 2, 3, 4}, {5, 6}}
Case2: {1,2,3,4,5,6}
Case3: {{1, 3, 5, 6}, {2, 4}}
我找到了很多方法来做到这一点,我发现最好的一种需要复杂性 O(n^2) 来对它们进行排序。
case1、case2 和 case3 的最佳复杂度是多少?
那么编写本机 (c++11,c++14) 跨平台代码来对向量进行排序的最佳方法是什么? O(n^2) 是最好的复杂度吗?记忆也很重要。
我检查了这个解决方案here,但似乎还需要O(n^2) 来对向量进行排序?
【问题讨论】:
-
你认为结果应该是
{{1, 2, 3, 4}, {5, 6}}吗? -
如果我理解,您想先合并您的向量,然后对合并后的向量进行排序,对吗?合并而不重复?
-
@PaoloM : 或者先对每个向量排序,然后合并
-
可以插入吗?循环遍历向量并按顺序插入新向量...
-
什么是
n?是向量的个数还是所有向量中值的总数?