散列表是啥?
散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录。这个映射函数称做散列函数,存放记录的数组称做散列表。
散列表用的是数组支持按照下标随机访问数据的特性,所以散列表其实就是数组的一种扩展。通过散列函数把元素的键值映射为下标,然后将数据存储在数组中对应的下标的位置;当按照键值查询元素的时候,用同样的散列函数,将键值转化为数组下标,从对应的数组下标的位置取数据;
可能你还是不清楚散列表长啥样,还是不知道散列到底有啥用?不要着急,接着往下看就明白了!
为什么要用散列?
散列是一种常用的算法思想,在很多任务中(特别是快速查询)我们都会有意无意地使用到。因为个人感觉直接阐述散列表的优点不够直观,所以我引入了一个简单的例子,方便大家迅速get到散列表的优势。
给出N个正整数,再给出M个正整数,问着M个数中的每个数分别是否在N个数中出现过,其中N,M≤10^5。例如N = 5, M &#