c++ - n个数,要求插入,查找最大最小值,删除最大最小值的时间复杂度都限制在O(log2n),应该用什么算法?
黄舟
黄舟 2017-04-17 14:43:26
0
5
746

n个数,要求插入,查找最大最小值,删除最大最小值的时间复杂度都限制在O(log2n),应该用什么算法和数据结构?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全員に返信(5)
小葫芦

楼上两个答案的出发点不同。

平衡二叉树可以做到,但是原序列会被排序。
在C++中,set 和 map 都可以满足要求。

而线段树可以求出区间最大或者最小值,不需要重新排序。
没有现成的数据结构可用,你可以自己写个模板。

いいねを押す +0
洪涛

使用平衡二叉树

いいねを押す +0
洪涛

你们怎么用平衡二叉树呢,虽然可行;但如果只是最大最小值,那只需要使用一个heap,在C++中有现成数据结构,是STL中的priority_queue

いいねを押す +0
迷茫

线段树可解 ...

いいねを押す +0
Peter_Zhu

用C++ STL里的set

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!