gpt4 book ai didi

c++ - set::insert 的复杂度

转载 作者:IT老高 更新时间:2023-10-28 22:26:12 26 4
gpt4 key购买 nike

我已经阅读到集合中的插入操作只需要 log(n) 时间。这怎么可能?

要插入,首先我们要在排序后的数组中找到新元素必须位于的位置。使用二分查找需要 log(n)。然后要插入到那个位置,它后面的所有元素都应该向右移动一个位置。又需要n次。

我的怀疑是基于我的理解,即 set 是作为数组实现的,并且元素按排序顺序存储。如果我的理解有误,请纠正我。

最佳答案

std::set 通常实现为红黑二叉搜索树。在这种数据结构上插入的最坏情况是 O(log(n)) 复杂度,因为树保持平衡。

关于c++ - set::insert 的复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12776485/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com