Hash算法也叫哈希算法和散列算法,它是基于高速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据结构能够理解为一个线性表,可是当中的元素不是紧密排列的,而是可能存在空隙。所以该算法的价值是速度。
hash算法比较多,在下也没有完全懂得,想要了解其算法的可以在网上搜。
举例说明:比如将99个元素储存到拥有100个元素的空间,这时就会想到数组,数组的元素根据索引来访问,找到索引便可计算该元素在内存中的存储位置,除了数组需要的长度时固定的,无法自由增加数组的长度之外,存和取都比较方便,数组读取的方式时循环遍历,在这题当中,需要遍历99次,耗时较长,为了缩短读取的时间,hash算法便出现了。
将一个元素的hash值除以数组的长度取余,将余数一样的hash值放在一起,那么这样虽然加大了存储的空间,但提高了读取的速度,遍历的时间得到了缩短。