摘要:
随着互联网的兴起,越来越多的内容被放到互联网中,从而导致海量数据处理受到更多人的重视,尤其是在百度、腾讯等这些涉及海量数据的公司。下面我们简单谈一下关于海量数据处理的一些常用数据结构。包括哈希、bitmap、Bloom filter、堆、mapreduce、trie树。 (1)哈希 对于哈希,相信大 阅读全文
摘要:
cut是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的。 (1)其语法格式为:cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file] 使用说明cut 命令从文件的每一行剪切 阅读全文
摘要:
在程序运行过程中,结构体或类的字节对齐可以使程序更方便、更快速的执行,除了编译器本身的优化外,还可以在程序中手动对齐。在C/C++中,是通过引入#pragam pack(n)来实现的。 缺省情况下,编译器为每个结构体或类中的每个成员按其自然对界(natural alignment,自然对界是指按结构 阅读全文
摘要:
(1)字典树(Trie树) Trie是个简单但实用的数据结构,通常用于实现字典查询。我们做即时响应用户输入的AJAX搜索框时,就是Trie开始。本质上,Trie是一颗存储多个字符串的树。相邻节点间的边代表一个字符,这样树的每条分支代表一则子串,而树的叶节点则代表完整的字符串。和普通树不同的地方是,相 阅读全文
摘要:
程序变量分区中栈和堆的区别 (1)申请方式stack: 由系统自动分配。 例如,声明在函数中一个局部变量 int b; 系统自动在栈中为b开辟空间。heap: 需要程序员自己申请,并指明大小,在C中malloc函数,C++中是new运算符。如p1 = (char *)malloc(10); p1 = 阅读全文
摘要:
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法sed命令行格式为: sed [-nefri] ‘command’ 输入文本 常用选项: -n∶使用安静(silent)模式。在一般 sed 的用 阅读全文
摘要:
数据结构中为了存储和查找的方便,用各种树结构来存储文件,本章就浅谈一下各种树的表示方法、特点及各自的用途,本章设计的树结构包括:二叉查找树(二叉排序树)、平衡二叉树(AVL树)、红黑树、B-树、B+树、字典树(trie树)、后缀树、广义后缀树。 1、二叉查找树(二叉排序树) (图a) 二叉查找树是一 阅读全文
摘要:
awk是一个非常棒的数字处理工具。相比于sed常常作用于一整行的处理,awk则比较倾向于将一行分为数个“字段”来处理。运行效率高,而且代码简单,对格式化的文本处理能力超强。先来一个例子: 文件a,统计文件a的第一列中是浮点数的行的浮点数的平均值。用awk来实现只需要一句话就可以搞定$cat a1.0 阅读全文
摘要:
题目:要求从N个元素中随机的抽取k个元素,其中N无法确定 解法:首先选择N中的前k个数加入“蓄水池”中,然后从第k+1个数开始,以k/k+i(i=1,2,3...)的概率选择这个数,然后在蓄水池中随机选择一个数,并将其替换,N个元素遍历完毕后,蓄水池中的k个数就是随机选择的。 证明:这里即需要证明每 阅读全文
摘要:
一、混沌状态 我们的开发目前面临着个性化项目多、开发和结转压力大、重复开发或半成品开发比较明显等问题,可以说我们的开发(包括国内很多中小软件公司)还处于“混沌”状态,主要表现有下面的几个方面: 1、“集成”的定位和使命 我找过一些开发同事,他们认为我们部门其实是“集成”开发部,所谓“集成”其实就是不 阅读全文