对于小输入空间,在检查会员时会更快地或设置更快



这个问题已经困扰着我一段时间:如果我要检查会员资格,而我只有10个元素,那么哈希地图仍然是最快的选择吗?换句话说,当保证n是时,这些python操作中的哪一个更快:

x in [1,2,3,4,5,6,7,8,9]

x in {1,2,3,4,5,6,7,8,9}

我的直觉问:计算哈希对于小输入空间效率低。

集合的效率不如小型搜索空间数组。我进行了一个测试,该测试检查集合中的元素的成员资格,每个阵列中的元素成员资格每次10000次。该元素不存在,因此必须检查整个数组。结果是:

1000个元素
设置的时间:1.06799983978
数组的时间:4.13400006294

100个元素
设置的时间:1.0559999428
数组的时间:1.19999980927

70个元素
设置的时间:1.0959995613
数组的时间:1.09200000763

10个元素:
设置的时间:1.1360001564
数组的时间:0.927999973297

因此,用于检查不到70个元素的元素的成员资格,使用数组比使用集合更有效。

最新更新