要获取最小值和最大值,用什么样的数据结构
需要用一个数据结构保存100000个数据,要求能快速取得最小值和最大值,不用排序,要求高效。
相关要求如下:
1、能高效读取最大/最小值。但一次只要获得最大或最小值即可,不用同时获得两个。
2、能高效删除最大值或最小值。
现在我用heap,能以O(1)获得最小值,或最大值,但获取另一个最值则慢。我的具体用法是:
如果用红黑树,觉得有点笨重,有没有比红黑树更轻便的结构实现这个?
我看数据结构的数提到这些:
裴波那契堆、伸展树、红黑树、2-3树、2-3-4树、二项堆、最小-最大堆、双端堆
都没用过,请问哪个容易解决我的问题?