【发布时间】:2020-12-07 17:38:28
【问题描述】:
我已经实现了一个动态编程算法(自下而上)。
作为快速修复,我对 DP 表使用了字典而不是固定大小的数组,但考虑到我的输入大小(n 高达 50k,m 高达 100),我认为将dp_table: Dict[int, Dict[int, float]] 重构为dp_table: List[List[float]] 会有很多好处。
我们知道哈希表的索引运行时间为 O(1),但常数值“高”,而列表索引的运行时间为 O(1),并且常数应该小得多。
dict.__getitem__ 和 list.__getitem__ 之间的性能差异是什么?
使用 numpy 数组还有更多好处吗?
【问题讨论】:
-
性能差异将是常数的变化。您是否尝试过自己运行任何基准测试?
-
我希望这种无处不在的操作的性能基准已经存在,但我找不到任何东西。
标签: python arrays performance hashmap dynamic-programming