在python中查找变化集的最小值和最大值的有效方法

Asmn

我需要在不断变化的大型集中找到最小值/最大值,在C ++中,可能是

#include<set>
using namespace std;
int minVal(set<int> & mySet){
    return *mySet.begin();
}
int maxVal(set<int> & mySet){
    return *mySet.rbegin();
}
int main(){
    set <int> mySet;
    for(..;..;..){
       // add or delete element in mySet
       ...
       // print the min and max value in the set
       printf("%d %d\n", minVal(mySet), maxVal(mySet)); 
    }
}

在C ++中,每个查询操作都是O(1),但是在python中,我尝试使用内置方法min和max,但是它太慢了。每个最小/最大操作花费O(n)时间(n是我的Set的长度)。有什么优雅而有效的方法可以做到这一点吗?还是任何数据类型支持这些操作?

mySet=set()
for i in range(..):
  # add or delete element in mySet
  ...
  # print the min and max value in the set
  print(min(mySet),max(mySet))
GomoX

就复杂性而言,有效的实现方式是包装一个python set(使用哈希表)并在对象中保留一对maxElementminElement属性,并在添加或删除元素时相应地更新它们。这样可以保留每个存在性的查询,即最小和最大O(1)。但是,对于最简单的实现,删除操作将是O(n)最坏的情况(因为如果您碰巧删除了最小元素,则必须找到倒数第二个元素,而对于最大元素,删除操作也是一样)。

也就是说,C ++实现使用平衡的搜索树,该树具有O(log n)存在检查,删除和插入操作。您可以在bintrees包中找到这种数据结构的实现

我不会heapq像注释中所建议那样使用a ,因为堆是O(n)来检查元素的存在(我猜想您需要的是设置数据结构的要点)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在python中查找变化集的最小值和最大值的有效方法

来自分类Dev

在数组中查找最小值和最大值的有效方法

来自分类Dev

在.json中查找最大值和最小值

来自分类Dev

在.json中查找最大值和最小值

来自分类Dev

在Python中查找列表的最小值,最大值

来自分类Dev

从数组中查找最小值和最大值,最小值始终为0

来自分类Dev

从数组中查找最小值和最大值,最小值始终为0

来自分类Dev

在元组python中查找字典中的最大值和最小值

来自分类Dev

在Python的列表模式中查找最小值和最大值

来自分类Dev

Python递归-在嵌套数组中查找最大值和最小值之和

来自分类Dev

从 Python 中的列表列表中获取最小值和最大值的最快方法?

来自分类Dev

在文本文件中查找数据集的最大值和最小值;趣味拼图

来自分类Dev

查找函数的最小值和最大值

来自分类Dev

awk查找数组的最小值和最大值

来自分类Dev

查找矩阵的最大值和最小值

来自分类Dev

使用awk查找最小值和最大值?

来自分类Dev

如何使用SPSS查找所有变量的最大值和最小值并在表格中显示?

来自分类Dev

如何从具有自定义类对象的NSArray中查找最小值和最大值?

来自分类Dev

查找带有日期的每年的最小值和最大值

来自分类Dev

使用C中的函数查找数组中的最大值和最小值

来自分类Dev

查找字典数组的最大值和最小值的 Pythonic 方法

来自分类Dev

在数据中查找最大值和最小值,并将True / False附加到对应的行-Python

来自分类Dev

最小值和最大值

来自分类Dev

使用迭代查找最大值和最小值时的Python TypeError

来自分类Dev

Python数据框连续查找最小值和最大值之间的差异

来自分类Dev

通过用户输入在c ++中查找最大值和最小值

来自分类Dev

递归查找数组中的最小值和最大值

来自分类Dev

在单个递归函数中查找数组的最大值和最小值

来自分类Dev

使用半已知键在ArrayList的HashMap中查找最大值和最小值-Java

Related 相关文章

  1. 1

    在python中查找变化集的最小值和最大值的有效方法

  2. 2

    在数组中查找最小值和最大值的有效方法

  3. 3

    在.json中查找最大值和最小值

  4. 4

    在.json中查找最大值和最小值

  5. 5

    在Python中查找列表的最小值,最大值

  6. 6

    从数组中查找最小值和最大值,最小值始终为0

  7. 7

    从数组中查找最小值和最大值,最小值始终为0

  8. 8

    在元组python中查找字典中的最大值和最小值

  9. 9

    在Python的列表模式中查找最小值和最大值

  10. 10

    Python递归-在嵌套数组中查找最大值和最小值之和

  11. 11

    从 Python 中的列表列表中获取最小值和最大值的最快方法?

  12. 12

    在文本文件中查找数据集的最大值和最小值;趣味拼图

  13. 13

    查找函数的最小值和最大值

  14. 14

    awk查找数组的最小值和最大值

  15. 15

    查找矩阵的最大值和最小值

  16. 16

    使用awk查找最小值和最大值?

  17. 17

    如何使用SPSS查找所有变量的最大值和最小值并在表格中显示?

  18. 18

    如何从具有自定义类对象的NSArray中查找最小值和最大值?

  19. 19

    查找带有日期的每年的最小值和最大值

  20. 20

    使用C中的函数查找数组中的最大值和最小值

  21. 21

    查找字典数组的最大值和最小值的 Pythonic 方法

  22. 22

    在数据中查找最大值和最小值,并将True / False附加到对应的行-Python

  23. 23

    最小值和最大值

  24. 24

    使用迭代查找最大值和最小值时的Python TypeError

  25. 25

    Python数据框连续查找最小值和最大值之间的差异

  26. 26

    通过用户输入在c ++中查找最大值和最小值

  27. 27

    递归查找数组中的最小值和最大值

  28. 28

    在单个递归函数中查找数组的最大值和最小值

  29. 29

    使用半已知键在ArrayList的HashMap中查找最大值和最小值-Java

热门标签

归档