散列表
下面是几种已知的查找方法,右边是他们的时间复杂度。
时间复杂度最好也只是O(N),有没有一种查找方式可以一找就找到呢,有,那就是散列查找散列查找的关键就是创建散列表。
散列表:是实现字典操作的一种有效数据结构。最坏查找时间为O(n),理论上可以达到的平均查询时间是O(1)。散列表是普通数组概念的推广,当实际存储的关键字数目比全部的可能关键字总数要小时,采用散列表就成为直接数组寻址的一种有效替代,因为散列表使用一个长度与实际存储的关键字数目成比例的数组来存储。在散列表中,不是直接把关键字作为数组的下标,而是根据关键字计算出相应的下标。散列:是一种极其有效和实用的技术,基本的字典操作平均只需要O(1)的时间。散列冲突,就是指多个关键字映射到数组的同一个下标。
先来看第一项
构造散列函数
直接定址法(不常用)除留余数法(最常用)