
海量数据处理
jackywgw
这个作者很懒,什么都没留下…
展开
-
给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中?
总共有4*10^9个数字,如果直接放在内存中,需要的内存量是 4*10^9*4bytes(一个unsigned int为4bytes) ~= 16GBytes内存 用bitmap表示就是4*10^9bits~=512MBytes=2^32 = 4 294 967 296 ,所以索性就分配512M内存,然后依次将这个40亿不重复的数字添加到bitmap中,默认为0,添加后为1。最后直接判断要查找原创 2016-05-26 14:25:48 · 3361 阅读 · 0 评论 -
Trie树
1.1 什么是trie树 Trie树,即字典树,又称单词查找树或前缀树, 是一种用于快速检索的多叉树结构。 Trie一词来自retrieve, 发音为 /tri:/ “tree”,也有人读为/trai/ “try”. 优点:最大限度地减少无谓的字符串比较,查询 效率比哈希表高。 缺点:内存消耗大。 Trie树的核心思想是空间换时原创 2016-05-31 10:48:51 · 282 阅读 · 0 评论 -
LCA(Least Common Ancestors)最近公共祖先
LCA(Least Common Ancestors),即最近公共祖先,是指这样一个问题:在有根树中,找出某两个结点u和v最近的公共祖先(另一种说法,离树根最远的公共祖先)。 对于该问题,最容易想到的算法是分别从节点u和v回溯到根节点,获取u和v到根节点的路径P1,P2,其中P1和P2可以看成两条单链表,这就转换成常见的一道面试题:【判断两个单链表是否相交,如果相交,给出相交的第一个点。原创 2016-06-06 16:37:38 · 456 阅读 · 0 评论 -
二叉堆的实现
binary_heap.h#ifndef __BINARY_HEAP__ #define __BINARY_HEAP__ typedef int ElementType; struct binary_heap_s { unsigned int capacity; /*能存储的元素总数*/ unsigned int size; /*当前元素的个数*/ ElementTyp原创 2016-05-27 18:01:16 · 666 阅读 · 0 评论