数据结构python编程总结

大数据、空间限制

  1. 布隆过滤器
  • 使用很少的空间就可以将准确率做到很高的程度(网页黑名单系统、垃圾邮件过滤系统、爬虫的网址判重系统等)

  • 有一定的失误率

  • 单个样本的大小不影响布隆过滤器的大小

  • n个输入、k个hash函数、m范围(布隆过滤器大小)

  • 宁可错杀一千,绝不放过一个,当hash映射的k个bit有一个不为1时,它一定不再制定集合里,反之却不一定在集合里(m大小有限,存在误差)

  1. 大数据处理技巧(限制空间)
  • 把一个大的集合通过哈希函数分配到多台机器(文件)中。

  • 善于用bitmap数组(可用nbit代表一个数、1bit可判断是否出现过、2bit可查找出现0,1,2,3次的数,以此类推)

  • 很多大数据问题都离不开分流,,要么是哈希函数将大文件内容分配给不同的机器,要么是哈希函数将大文件拆成小文件,然后处理每一个小数量集合(哈希函数的性质决定了同一个输入不可能分给不同的机器)

  • topK问题:
    1. 哈希函数分流、哈希表词频统计
    2. 堆结构(大、小根堆插入删除操作)、外排序

上一篇:回归JavaScript基础(八)


下一篇:【 Failed to create the Java Virtual Machine】的2种解决方式