c++ - C++ 标准模板库中 std::sort 的空间复杂度是多少?

标签 c++ sorting c++-standard-library

我一直认为空间复杂度是 O(1) 但我在网上看它在不同阶段使用不同的排序算法这让我很困惑,std::sort 的空间复杂度到底是什么,它们什么时候不同?

最佳答案

std::sort的“空间复杂度”没有定义。但是,不允许动态分配内存(因为不允许抛出 std::bad_alloc 除非您的类型在复制/移动时这样做)。所以它唯一可以占用的空间是堆栈空间。并且它允许占用任何实现的愿望。sort倾向于作为快速排序的某种变体来实现,因此倾向于递归实现,因此它可能平均使用 O(log(n)) 调用。

关于c++ - C++ 标准模板库中 std::sort 的空间复杂度是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68146330/

相关文章:

C++ opencv获取编码的网络摄像头流

c++ - 为什么 std::stof、std::stod 和 std::stold 处理带有异常的错误?

c++ - 标准中术语相同、相等、等效的含义

python - 删除目录 python3 中最旧的文件

php - 移除顶层数组并将子数组合并为一个

c++ - g++ 4.7.2 中缺少 std::stoi?

c++ - 如何将一系列十六进制值表示的枚举附加到 QByteArray?

c++ - Floyd 的环路查找算法什么时候会失败?

c++ - 初始化一个 **Array 以及标题中实际需要的内容,以便它通过

c++ - std::sort 抛出段错误 C++