上一页 1 ··· 3 4 5 6 7 8 9 10 11 下一页
摘要: 字典树: 又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。 字典树的基本功能是用来查询某个单词(前缀)在所有单词中出现次数的一种数据结构,它的插入和查询复杂度都为O(len),Len为单词(前缀)长度,但是它的空间复杂度却非常高,如果字符集是26个字母,那每个节点的度就有26个,典型的以空间换时间结构。 下面我们选的存储字典树节点的数据结构为: ty... 阅读全文
posted @ 2011-10-26 20:54 glose 阅读(10356) 评论(1) 推荐(1) 编辑
摘要: 今天看Data-Intensive Text Processing with MapReduce 这本书的第三章的时候,里面有写到在map端优化wordcount。 对数据密集型数据进行分布式处理的时候,影响数据处理速度的非常重要的一个方面就是map的输出中间结果,在传送到reduce的过程中,很多的中间数据需要进行交换以及包括一些相应的处理,然后再交给相应的reduce。其中中间数据需要在网络中传输,另外中间数据在发送到网络上之前还要写到本地磁盘上,因为网络带宽和磁盘I/O是非常耗时的相比与其他的操作,所以减少中间数据的传输将会增加算法的执行效率,通过使用combiner函数或者其他的... 阅读全文
posted @ 2011-10-24 19:48 glose 阅读(682) 评论(0) 推荐(0) 编辑
摘要: 基数排序是非比较排序算法,算法的时间复杂度是O(n)。 基数排序的主要思路是,将所有待比较数值(注意,必须是正整数)统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始, 依次进行一次稳定排序,这样从最低位排序一直到最高位排序完成以后,数列就变成一个有序序列。比如这样一个数列排序: 342 ,58, 576, 356, 以下描述演示了具体的排序过程(红色字体表示正在排序的数位) http://www.cnblogs.com/sun/archive/2008/06/26/1230095.html第一次排序(个位):3 425 763 560 58第二次排序(十位):34235... 阅读全文
posted @ 2011-10-20 19:02 glose 阅读(11224) 评论(1) 推荐(2) 编辑
摘要: 堆的定义: n个关键字序列Kl,K2,…,Kn称为堆,当且仅当该序列满足如下性质(简称为堆性质): (1)ki<=k(2i+1)且ki<=k(2i+2)(1≤i≤ n),当然,这是小根堆,大根堆则换成>=号。 //ki相当于二叉树的非叶结点,K2i则是左孩子,k2i+1是右孩子 若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树: 树中任一非叶结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。堆排序: 堆排序是一种选择排序。是不稳定的排序方法。时间复杂度为O(nlogn)。 堆排序的特点是:在排... 阅读全文
posted @ 2011-10-19 20:59 glose 阅读(5685) 评论(0) 推荐(0) 编辑
摘要: 配置ssh之前要在本机上装上ssh,可以通过sudo apt-get install ssh或者通过新立德来安装。如果没有进行配置的话,登录到本机或者远程主机需要该主机的密码才行。下面进行无密码登录的配置:很简单,执行ssh-keygen -t rsa命令,一路敲回车就行了,就在.ssh文件夹下生成了2个文件,一个公钥和一个私钥文件, id_rsa id_rsa.pub ,然后执行cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys命令。这样配置之后就可以实现无密码登录本机。如果需要登录到远程主机,只需要将authorized_keys文件发送到远程主机的~/ 阅读全文
posted @ 2011-10-14 12:02 glose 阅读(22607) 评论(1) 推荐(3) 编辑
摘要: hadoop@ubuntu:~/hadoop-0.20.2/bin$ ./hadoop jar ~/finger.jar Finger kaoqin output出现的错误:11/10/14 13:52:07 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same.11/10/14 13:52:07 WARN mapred.JobClient: No job jar file set. User class 阅读全文
posted @ 2011-10-13 14:16 glose 阅读(2825) 评论(0) 推荐(0) 编辑
摘要: 1. Calendar和Date的转化(1) Calendar转化为Date Calendar cal=Calendar.getInstance(); Date date=cal.getTime();(2) Date转化为Calendar Date date=new Date(); Calendar cal=Calendar.getInstance(); cal.setTime(date);2. 把字符串转化为java.util.Date 方法一: String str1="1988-10-20 13:20:20"; DateFormat format1=new Simpl 阅读全文
posted @ 2011-10-12 16:41 glose 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 问题:输入多个文件,每个文件中有很多个单词,并且都是以空格分隔。然后需要对这些输入文件建索引 输出每个单词在某个文件中出现的次数。比如hello在file1中出现了10次,在file2中出现了4次,那么就输出 hello file1 10 file2 4,以此类推,最后将建好的索引输出到输出文件中。这个程序我已经实现了,需要源码的联系我~~ 阅读全文
posted @ 2011-09-30 16:26 glose 阅读(721) 评论(5) 推荐(0) 编辑
摘要: 在mapreduce程序运行的开始阶段,hadoop需要将待处理的输入文件进行分割,按预定义的格式对文件读取等操作,这些操作都在InputFormat中进行。主要工作有以下3个: 1. Validate the input-specification of the job. 2. Split-up the input file(s) into logical InputSplits, each of which is then assigned to an individual Mapper. 3. Provide the RecordReader implementation to be . 阅读全文
posted @ 2011-09-30 16:18 glose 阅读(1270) 评论(0) 推荐(0) 编辑
摘要: 题目:Datadeduplication描述你的程序要求读入输入文件,在去掉所有数据中的重复数据后输出结果。在输入文件中每一行是一个元数据。输入输入是一组文本文件,在每个输入文件中每一行是一个数据。每一个元数据都是一个字符串。输出文件输出文件的每一行都是在输入文件中出现过的一个数据,并且输出文件中的每一行都不相同。输入样例input1:2006-6-9a2006-6-10b2006-6-11c2006-6-12d2006-6-13a2006-6-14b2006-6-15c2006-6-11cinput2:2006-6-9b2006-6-10a2006-6-11b2006-6-12d2006-6 阅读全文
posted @ 2011-09-26 18:33 glose 阅读(693) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 下一页