哈希表
哈希表
yuzhang_zy
现在的我不是最好的我,未来的我才是最好的我,每一篇博客都记录着我的成长
展开
-
哈希函数简述
1. 哈希函数一般的线性表,树中,记录在结构中的相对位置是随机的,即和记录的关键字之间不存在确定的关系,因此,在结构中查找记录时需进行一系列和关键字的比较。这一类查找方法建立在“比较“的基础上,查找的效率依赖于查找过程中所进行的比较次数。 理想的情况是能直接找到需要的记录,因此必须在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使每个关键字和结构中一个唯一的存储位置相对应而哈希函...原创 2018-12-07 17:40:32 · 2381 阅读 · 0 评论 -
布隆过滤器(海量数据找重复)
1. 布隆过滤器它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难布隆过滤器是与哈希算法是相关的,是工业实践上常用的算法,之前我们使用HashMap或者HashSet来查找重复的话也是可以的,但是对于在数据量比较大的情况下去查询那么速度就比较慢了,这个时候对...原创 2018-12-08 11:41:04 · 2370 阅读 · 0 评论 -
HashMap的实现
1. 虽然说Java中已经为我们实现了HashMap,但是我们可以自己写一个自定义的HashMap,这样可以锻炼我们封装数据结构的能力2. 首先需要写一个接口IHashMap,接口中声明了对数据操作的方法import java.util.Iterator;public interface IHashMap <K, V>{ //清除所有的键值对 void clear();...原创 2018-12-08 13:59:16 · 499 阅读 · 0 评论 -
字符串哈希
1. 问题描述:字符串hash是指将一个字符串S映射为一个整数,使得该整数可以尽可能唯一地代表字符串S,那么在一定程度上,如果两个字符串转换成的整数相等,那么就可以认为这两个字符串相同在字符串hash方法中,对只有大写字母的字符串,它将字符串当做26进制的数字,然后将其转换为十进制,也就是下面的式子,其中str[i]表示的是字符串的i号位置,index函数将A~Z转换为0~25,H[I]表...原创 2019-07-04 11:13:33 · 910 阅读 · 0 评论 -
整数散列
1. 散列是常用的算法思想之一,在很多程序中可能都会使用到,我们先看看这样一个问题,给出N个整数,再给出M个正整数,问这M个数中的每个数在N个数中出现的次数是多少,其中N,M <= 10 ^ 5,对于这个问题我们可以直接for循环遍历待查询的正整数x,遍历N个数,看是否存在一个数与x是相等的,时间复杂度是O(n * m),当N和M都很大的时候是计算不出来的那么该怎么样做呢?这里就需要使用...原创 2019-07-05 09:42:58 · 310 阅读 · 0 评论