今天我测试了一下二分法与hash表的查找性能,我就谈一下查找的性能,先不考虑插入的性能。
先说说hash表吧,它的查找性能是和数据量成正比的,也就是数据量越大查找的越慢。
二分法查找,查找字符串和hash表性能差不多,但是如果查找字符串相同时,数据量不同,那hash就会随着数据量的增大而性能下降。如果查找的是int型的那二分法是非常快的,可以比字符串型快10倍左右。
如果考虑插入的性能,hash表必须先put进去才能实现查找,二分呢就不必考虑这个问题,它可以查找任何类型的数组中的值。这样看来hash又有性能开销了,put进去性能也是和数据量成正比的。
写到这看来是二分法比hash要快的多了,呵呵,不过二分是有前提条件的,它必须在有序的数组中才能实现查找,而hash呢,则不需要顺序问题。所以具体用什么还要看实际情况啦。