我们都知道python的字典是由key,value组成的呢。你应该也听过,字典找某一个值的速度很快,那么为什么呢?
就是因为字典里面运用了“哈希”这种技术。那么到底什么是哈希呢?
{这里做一个限定, 我们只讨论查找这单一功能的实现中哈希的运用,并不像扯到加密和保证文件完整性的机制,恩恩就这样}
这里为了解释什么事哈希,我要做一个非常不严禁的比喻
我们都用过360吧,在访问”某些“网页的时候,那个是不是会报出提醒xxxx。那我们可以猜到,他内部是一定有一个表格上面吧所有不合格的网址都记录在上面了。那么加入上面有一亿个这样的域名,那么大多数情况下都要比较好多次,那么我们可以把这些网址标记起来 我们可以用特点的算法把他们区分出不同的标记。然后把这些存放到数组中,那么想要知道我们的元素是否在这个集合里,直接先把你访问的域名算成标记,然后看标记在不在存放标记的数组中。即可。{你可能会说这个跟没做哈希有什么区别--先去看下我关于list的帖子 Ps:这里用python的数组,的确是符合情况的,如果。。。。LOL
那么这里哈希的复杂度是多少呢---它竟然是常熟级的。。。
但是从文中我们知道其实这是一种用空间换时间的做法。实际是空间消耗所带了的弊端,远远掩盖不了 它在性能方面带来的优势,于是你懂的。。。