置顶随笔

摘要: 准备知识Merkle tree[1] 上图(来自Wikipedia[1])给出了一个二进制的哈希树(二叉哈希树, 较常用的tiger hash tree也是这个形式). 据称哈希树经常应用在一些分布式系统或者分布式存储中的反熵机制(Anti-entropy),也有称做去熵的.这些应用包括 Amazon的Dynamo 还有Apache的Cassandra数据库, 通过去熵可以去做到各个不同节点的同步, 即保持各个节点的信息都是同步最新. 哈希树的特点很鲜明: 叶子节点存储的是数据文件,而非叶子节点存储的是其子节点的哈希值(称为MessageDigest) 这些非叶子节点的Hash被称作路径哈希值阅读全文
posted @ 2012-09-10 15:53 aho 阅读(60) 评论(0) 编辑
摘要: 概述: 在很多的MySQL检索应用中,为了提高热点查询的效率,往往会选择在MySQL数据库前边加上一层Memcached做查询缓存。这样在中间查询层,用户程序需要自己先去Memcached里面查询一遍自己需要的key是否已被缓存,若没有,则再去MySQL数据库中进行相应的查询。在MySQL5.6版本后,InnoDB存储引擎开始集成Memcached: 上图中的SQL到Memcached的add、incr等操作完全在MySQL server端进行。不需要人为的进行操作解析,所带来的好处包括:自动持久话。存储引擎自动做Memcached到数据文件间的持久化,所以一些add、incr操作也可以直接对阅读全文
posted @ 2012-09-06 18:03 aho 阅读(65) 评论(0) 编辑

2012年12月7日

摘要: 运行环境 centos 5.6 hadoop hivesqoop是让hadoop技术支持的clouder公司开发的一个在关系数据库和hdfs,hive之间数据导入导出的一个工具,手册地址:http://sqoop.apache.org/docs/1.4.1-incubating/SqoopUserGuide.html在使用过程中可能遇到的问题:sqoop依赖zookeeper,所以必须配置ZOOKEEPER_HOME到环境变量中。sqoop-1.2.0-CDH3B4依赖hadoop-core-0.20.2-CDH3B4.jar,所以你需要下载hadoop-0.20.2-CDH3B4.tar.g阅读全文
posted @ 2012-12-07 15:26 aho 阅读(149) 评论(0) 编辑

2012年11月19日

摘要: 本文为转载, 来自:http://www.cnblogs.com/showna/articles/1013399.html多谢楼主秀纳的分享。Gcc的编译流程分为了四个步骤,分别为:预处理(Pre-Processing)编译(Compiling)汇编(Assembling)链接(Linking)下面就具体来查看一下Gcc是如何完成四个步骤的。首先,有以下hello.c源代码#include<stdio.h>int main(){ printf("Hello! This is our embedded world!\n"); return 0;}(1)预处理阶段在阅读全文
posted @ 2012-11-19 09:11 aho 阅读(11) 评论(0) 编辑

2012年9月21日

摘要: 问题描述:我们把只包含因子2、3和5的数成为丑数(Ugly Number)。例如6、8都是丑数,但是14不是。我们习惯将1作为第一个丑数。求从小到大顺序的100个丑数。问题解答:穷举,暴力的方法总是可以解决问题的,只是需要你的耐心等待;维持3个下标,表示前面的数据已分别做过*2、*3、*5操作(下标初始化为1),维持一个向后移动的结果下标。这样我们每次找出三个下标的数分别*2、*3、*5,取出最小的数,和当前结果的最大数比较,如果大于,放入结果;否则只是*x的下标移动。下面举例说明: index2 index3 index5 res res[index_x] * ...阅读全文
posted @ 2012-09-21 12:27 aho 阅读(24) 评论(0) 编辑
摘要: 转自:wuzhekai的专栏 http://blog.csdn.net/wuzhekai1985/article/details/6704794 mark 以供自己复习问题描述:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。思路:如果只有一个数字只出现一次,而其他都出现两次,则直接将所有数字做一次异或运算即可,因为相等的数字异或一下结果为0。如果有两个数字只出现一 次,而其他数字出现了两次。该怎么办呢?《编程之美》一书提供了一种方法,即先将所有数字做一次异或运算,得到一个数字,然后以该数字的某非0位作阅读全文
posted @ 2012-09-21 10:35 aho 阅读(16) 评论(0) 编辑

2012年9月20日

摘要: 问题描述:给你一个链表的表头指针head,如何判断链表中是否有环?扩展问题:如果有环,请找出环的入口点。问题解答:对于第一个问题,有一个很普遍的作法,就是使用快慢指针,一个指针一次走一步,另一个指针一次走两步,看是否相遇,便可以很容易得到结果。细节不再赘述。需要仔细分析的是第二个问题,如下图所示假设我们的链表形状是途中所示,那么可以看出块慢指针在节点3处相遇,我们假设1到2之间的距离是x, 2到3之间的距离是y, 3到2之间的距离是z,那么我们根据快指针每次走两步的特性可以得出下列公式:2*(x + y) = x + y + k*(y + z) 其中k为1 , 2……由上面公式我们又可以推到出阅读全文
posted @ 2012-09-20 16:36 aho 阅读(14) 评论(2) 编辑

2012年9月15日

摘要: 转自zf_zhouf的博客关于InnoDB架构的文章,写的很详细,给自己mark下,以后需要还能再翻出来看看。一共5篇,下面的链接只是第一篇http://blog.163.com/zf_zhouf/blog/static/20009802620113795850255/阅读全文
posted @ 2012-09-15 17:24 aho 阅读(22) 评论(0) 编辑

2012年9月10日

摘要: 准备知识Merkle tree[1] 上图(来自Wikipedia[1])给出了一个二进制的哈希树(二叉哈希树, 较常用的tiger hash tree也是这个形式). 据称哈希树经常应用在一些分布式系统或者分布式存储中的反熵机制(Anti-entropy),也有称做去熵的.这些应用包括 Amazon的Dynamo 还有Apache的Cassandra数据库, 通过去熵可以去做到各个不同节点的同步, 即保持各个节点的信息都是同步最新. 哈希树的特点很鲜明: 叶子节点存储的是数据文件,而非叶子节点存储的是其子节点的哈希值(称为MessageDigest) 这些非叶子节点的Hash被称作路径哈希值阅读全文
posted @ 2012-09-10 15:53 aho 阅读(60) 评论(0) 编辑

2012年9月6日

摘要: 概述: 在很多的MySQL检索应用中,为了提高热点查询的效率,往往会选择在MySQL数据库前边加上一层Memcached做查询缓存。这样在中间查询层,用户程序需要自己先去Memcached里面查询一遍自己需要的key是否已被缓存,若没有,则再去MySQL数据库中进行相应的查询。在MySQL5.6版本后,InnoDB存储引擎开始集成Memcached: 上图中的SQL到Memcached的add、incr等操作完全在MySQL server端进行。不需要人为的进行操作解析,所带来的好处包括:自动持久话。存储引擎自动做Memcached到数据文件间的持久化,所以一些add、incr操作也可以直接对阅读全文
posted @ 2012-09-06 18:03 aho 阅读(65) 评论(0) 编辑

2012年8月27日

摘要: 问题描述:以下程序本来想输出20个“-”,但是出错了,请帮其改正: #include <iostream> using namespace std; int main() { int n = 20; for (int i = 0; i < n; i--) { cout << ("-"); } cout << endl; return 0; }解答:1. i < n --> -i < n;2. i-- --> n--;3. i < n --> i + n;阅读全文
posted @ 2012-08-27 15:16 aho 阅读(12) 评论(1) 编辑

2012年8月18日

摘要: 函数指针的声明方法为: 函数类型 (标志符指针变量名) (形参列表); 例: int func(int x); /* 声明一个函数 */ int (*f) (int x); /* 声明一个函数指针 */ f=func; /* 将func函数的首地址赋给指针f */ 赋值时函数func不带括号,也不带参数,由于func代表函数的首地址,因此经过赋值以后,指针f就指向函数func(x)的代码的首地址。 注2:函数括号中的形参可有可无,视情况而定。完整的例子1: #include <iostream> using namespace std; int max(int a, i...阅读全文
posted @ 2012-08-18 15:46 aho 阅读(13) 评论(0) 编辑

2012年7月19日

摘要: (以下内容为我个人的安装过程,大家可根据自身需要修改安装路径等内容,如有疑问欢迎交流)一、JDK安装:1、获得程序包 jdk-6u16-dlj-linux-i586.binhttp://java.sun.com/javase/downloads/index.jsp2、解压安装$./jdk-6u16-dlj-linux-i586.bin读完协议最后输入yes,程序包开始解压。3、移到目标目录$mvjdk-6u16/usr/local/src/jdk4、设置环境变量vi/etc/profile//在profile文件最后添加#setJavaenvironmentexportJAVA_HOME=/u阅读全文
posted @ 2012-07-19 10:20 aho 阅读(39) 评论(0) 编辑

2012年7月9日

摘要: 问题描述: 求解一些有位置标记的线段中最高重合度,比如input:2 -> 5, 3 -> 9, 5 -> 11, 10 -> 15 output:3算法思想描述:可以使用count变量来记录当前进入的线段数,而是用max来记录最大进入的线段数;每当进入一个线段时,count+1,此时比较max值,看是否需要修改;出线段范围时,count-1.以上面的输入为例(同一个数字重合先算进入,再算离开):运算过程如下表:countmaxinit002113225335(出)23913102311131503所以最后的结果是:3阅读全文
posted @ 2012-07-09 16:55 aho 阅读(21) 评论(0) 编辑

2012年6月18日

摘要: /** 引用自同学杜川的分享 **/详细内容可参考杜川当时的ppthttp://files.cnblogs.com/L-aho/C%E8%AF%AD%E8%A8%80%E9%82%A3%E4%BA%9B%E4%BA%8B.pdf一些关键字解析定义与声明RegisterStaticSizeofSigned/unsignedConstStructunion关键字------从定义和声明说起何为定义,何为声明?定义:编译器创建一个对象,为对象分配内存并给它去一个名字。名字和内存相绑定,内存位置也不能被改变。声明:告诉编译器名字已经匹配到一块内存上了。以后用到这个名字都是在别处已阅读全文
posted @ 2012-06-18 13:21 aho 阅读(26) 评论(0)  编辑

2012年5月15日

摘要: 问题描述: 给定一个足够大的随机选择函数rand(), 对于[0, n)范围内的数,随机选取m个(m<n),且取出的m个数有序排列(增序或减序)。问题解答:1、 一开始拿到问题的时候,我的想法就是从rand()%n中取出m个不同的数。这其中需要解决的问题一个就是如何去重,另一个是排序问题。 作者的算法参考自《The Art of Computer Programming. Volume2: Seminumerical Algorithms》,考虑方向完全不一样。 该算法依次考虑整数0,1,2……n-1,并通过一个适当的随机测试对每个整数进行选择。通过按序访问整数,可以保证输出结果的有序.阅读全文
posted @ 2012-05-15 11:10 aho 阅读(67) 评论(0) 编辑

2012年5月10日

摘要: 问题描述:问题的输入是具有n个整数的向量x,输出是输入向量的任何子向量中的最大和。例如下面的向量:31-415926-535897-93-2384那么改程序的输出就应该是59 到 97之间的总和,即187.但所有数为正数的时候,答案就是整个输入向量,可是我们必须要考虑负数的情况。问题解答:1、第一种方法式最简单的,对所有满足0 <= i <= j < n的(i,j)整数对进行迭代。找出总和最大的那个。这种方式的时间复杂度为O(n^3)。具体做法不在赘述。2、第二种方式是将时间复杂度降低到O(n^2),需要注意到x[i..j]的总和和前面已经计算出得总和x[i..j-1]有密切阅读全文
posted @ 2012-05-10 15:19 aho 阅读(75) 评论(0) 编辑
仅列出标题  下一页

导航

公告

统计