这个问题已经困扰着我一段时间:如果我要检查会员资格,而我只有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个元素的元素的成员资格,使用数组比使用集合更有效。