1.哈希表:也叫散列表,每一个元素都有对应的key和value,我们可以通过对应的key找到需要的value
举个例子: 1:韩梅梅
2:李雷
好处是可在一堆数据中,迅速的找到自己需要的元素
如果将key就是数组,数组的元素就是我们的value,我们需要找需要的元素的时候,就可以通过数组的索引迅速的找到对应的value,上面是一种意义的哈希表
Java——hashmap
python——字典
我们定义了key,然后通过哈希函数,找到对于的内存地址,最后将key/value保存到对于的内存地址
会出现的问题:哈希碰撞,就是相同的key通过同一个函数得到的相同的内存地址,这种情况下我们怎么存呢?
哈希碰撞有很多的解决方法:
通过链表的方法解决,将上一个key/value信息做出一个链表,它的next指针指向新的key/value
访问(access):
在哈希表里面,访问是不存在的
搜索(Search) 时间复杂度O(1):
指的是查找某个key,如果是碰撞的情况下,它的时间复杂度是O(k)
插入(Insert) 时间复杂度O(1):
通过找到5这个key对于的内存地址,直接插入数据