哪种数据结构可以最快地找到最小值?

发布于 2022-09-05 04:15:52 字数 232 浏览 29 评论 0

需求是:

有一个仓库,这个仓库会有频繁的数值插入和删除。
每次插入或删除之后,都需要尽可能快地找到最小值。
其他值的定位速度不重要,也可以需要关心数值的排序。

目前我只能想到使用红黑树来实现。但红黑树应该说是面面俱到的一个数据结构,最小值和任何值的地位是一样的,存取速度的数学期望相同。

请问针对这样的一个需求,有没有比红黑树更合适、更快速的数据结构呢?

提前谢谢各位大神!!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

白衬杉格子梦 2022-09-12 04:15:52

不是很懂,瞎写两句。
查了一下红黑树的增删查都是O(log n)的,而最小堆的增删是O(log n),查最小值显然是常数时间。看起来对你的应用最小堆更好一点。

傾旎 2022-09-12 04:15:52

应该是红黑树吧。

以stl的红黑树为例,更新完再平衡一个节点最多不超过3次旋转,查最小值$O(1)$,具体参考stl代码。

再看最小堆,更新完再平衡需要$O(logn)$,要是n很大呢。

用红黑树好点,stl都实现好了,自己改下就行。而且你是频繁的数值插入和删除,红黑树最好。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文