海量数据处理学习笔记
一:数据处理常见方法:hash方法、bit-map法(位图)、bloom filter(布隆过滤器)、数据库优化法、倒排序索引法、外排序索引法、tire树、堆、双层桶排序、mapreduce。 二:hash法 hash一般称为散列,是一种映射关系。构建散列表需要设定一个散列函数,加油设定一个冲突处理方法。冲突处理主要有:开放地址法(当地址发生冲突时,按照固定函数在散列,知道找到空闲位置)链地址法(设置指针组ch【m】,所有散列地址为i的数据元素都插入到头指针为策划ch【i】的链表中)再散列法(在散列冲突使用第二个、第三个。。。直到无冲突)建立公共溢出区。 hash主要是用来进行“快速存取”,在o(1)的时间复杂里,可以查找到元素,或者判断元素是否存在。 三、bit-map法 例题:从八位号码中找出重复号码,或删除重复号码。8位数字最多可以表示99999999个号码,每存储一个号码占用一个bit位,则需要99mbit,12.75MB就可以存储。例如,00000123的号码,把第123位置为1,当位为1时输出改位当前下标,则得出改信息。 三:blooom filter法 bloom filter的基本思想是位数组和hash函数的联合使用。包涵一个m位的位数组,初始化为0,定义k个不同的hash函数,每个函数为映射到一位。置为1,查询某元素是否存在时,检测该k个位是否全部为1。特点