带有自定义比较器函数的C++中sort()的时间和空间复杂度是多少
What is the Time and space complexity of sort() in C++ with custom comparator function?
考虑以下代码-
bool cmp(pair<string,int> &a, pair<string,int> &b) {
return ((a.second > b.second) || (a.second==b.second && a.first<b.first));
}
vector<pair<string,int>> v;
sort(v.begin(),v.end(),cmp);
对于这种情况,我的复杂性是什么?会是O(nlogn)
吗?
std::sort
具有时间复杂性:O(NlogN(自定义比较
但在您的情况下,比较器函数cmp
也执行字符串比较,
(a.second==b.second&&a.first<b.first(
std::basic_string operator<
的时间复杂度与字符串的大小呈线性关系。
因此,最坏情况下的复杂性是O(K*NlogN(字符比较,其中K是字符串的长度。
相关文章:
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- while循环中while循环的时间复杂度是多少
- 我可以创建一个包含两个变量的 for 循环,但时间复杂度仍然为 O(n) 吗?
- 函数的时间复杂度是多少?
- 如何检查两个 std::向量在小于 O(n) 的时间复杂度内是否相等
- 时间复杂度 当具有复合数据类型(如元组或对)时?
- 如何计算此排序函数的时间复杂度?
- 计算两个代码块的时间复杂度
- 当 A 在 for 循环中调用函数 B 时,如何计算函数 A 的空间复杂度?
- C++ 中具有 O(1) 搜索时间复杂度的数据结构
- 具有嵌套 if-else 的循环的时间复杂度
- C++ 中 std::map 的空间复杂度是多少?
- 我的代码的空间复杂度是多少
- 气泡排序算法的空间复杂度.
- 优化的c++代码,时间复杂度为O(n2),空间复杂度为0(1),用于后续输入
- 如何在时间和空间复杂度的限制下交替对偶数和奇数进行排序?(C/C++)
- 递归函数的最小空间复杂度是否为 O(N)
- 如何计算程序的空间复杂度
- C++中strstr()函数的时间复杂度、空间复杂度和算法是什么
- 提高从文件读取时的空间复杂度