- 博客(17)
- 收藏
- 关注
原创 二叉树最低共同父结点
<br /><br />struct TreeNode<br />{<br /> int m_nvalue;<br /> TreeNode* m_pLeft;<br /> TreeNode* m_pRight;<br />};<br />输入二叉树中的两个结点,输出这两个结点在数中最低的共同父结点。<br />分析:求数中两个结点的最低共同结点是面试中经常出现的一个问题。这个问题至少有两个变种。<br />第一变种是二叉树是一种特殊的二叉树:查找二叉树。也就是树是排序过的,位于左子树上的结
2010-09-27 13:49:00 566
转载 工厂模式(Factory Pattern)
工厂模式(Factory Pattern)工厂模式主要为创建对象提供了接口,工厂模式按照《java与模式》中的提法分为3类:1、简单工厂模式(Simple Factory)2、工厂方法模式(Factory Method)3、抽象工厂模式(Abstract Factory)这三种模式从上到下逐步抽象,并且更具一般性还有一种分类方法就是将简单工厂模式看为工厂方法模式的一种特例,两个归为一类。需要使用工厂模式的情况:1、在编码时不能预见需要创建哪种类的实例;2、系统不应该依赖于产品类实例如何被创建、组合和表达的细
2010-09-01 19:22:00 401
转载 mapreduce
<br />MapReduce:超大机群上的简单数据处理<br /> <br /> 摘要<br />MapReduce是一个编程模型,和处理,产生大数据集的相关实现.用户指定一个map函数处理一个key/value对,从而产生中间的key/value对集.然后再指定一个reduce函数合并所有的具有相同中间key的中间value.下面将列举许多可以用这个模型来表示的现实世界的工作.<br />以这种方式写的程序能自动的在大规模
2010-08-11 17:23:00 366
转载 Google File System
<br />Google文件系统 <br />GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,但可以提供容错功能。它可以给大量的用户提供总体性能较高的服务。 <br />1、设计概览 <br />(1)设计想定 <br />GFS与过去的分布式文件系统有很多相同的目标,但GFS的设计受到了当前及预期的应用方面的工作量及技术环境的驱动,这反映了它与早期的文件系统明显不同的设想。这就需要对传统的选择进行重新检验并进行完全不同的设计观点的探索。 <br
2010-08-11 17:21:00 230
转载 Google's BigTable 原理
<br /><br /> 题记:google 的成功除了一个个出色的创意外,还因为有 Jeff Dean 这样的软件架构天才。<br /> ------ 编者 <br />官方的 Google Reader blog 中有对BigTable 的解释。这是Google 内部开发的一个用来处理大数据量的系统。这种系统适合处理半结构化的数据比如 RSS 数据源。 以下发言 是 Andrew Hitchcock
2010-08-11 17:19:00 259
原创 中文金额数字转int
<br />用栈实现转化:<br />如果新读入的汉字(假设它代表的数字为N)比栈顶数字还要大<br />{<br /> 弹出栈中所有比N小的元素,并将这些元素累加,假设结果为S;<br /> 将S*N入栈;<br />}<br />否则<br />{<br /> 将N直接入栈;<br />}<br />最后将栈中所有数字相加。<br /> <br />Exp:一亿一千二百五十八万三千二百四十(112,583,240)<br />第1步==>处理“一”,N=1<br />直接入栈,<br />此时栈中
2010-08-11 13:05:00 636
转载 引用计数与Copy-On-Write
标准C++类std::string的内存共享和Copy-On-Write技术 1 概念 Scott Meyers在《More Effective C++》中举了个例子,不知你是否还记得?在你还在上学的时候,你的父母要你不要看电视,而去复习功课,于是你把自己关在房间里,做出一副正在复习功课的样子,其实你在干着别的诸如给班上的某位女生写情书之类的事,而一旦你的父母出来在你房间要检查你是否在复习时,你才真正捡起课本看书。这就是“拖延战术”,直到你非要做的时候才去做。 当然,这种事情在现实生活中时往往会出事,但其在
2010-08-10 11:32:00 276
原创 已知中序与后序,或者中序与先序,构造二叉树
/* <br />给出一棵二叉树的中序与后序排列。求出它的先序排列。<br />给出一棵二叉树的中序与先序排列。求出它的后序排列。<br />*/<br /><br />#include<iostream><br />#include<string><br /><br />using namespace std;<br /><br />typedef struct BTNode{<br /> char data;<br /> struct BTNode *lc, *rc;//左,右孩
2010-08-09 22:35:00 561
原创 扔蛋的最少次数
某人有M个相同的蛋,有一天,它想试验一下蛋的硬度。他是通过不断从一座N层楼高的楼上往下扔蛋来确定蛋的硬度X。给定M和N,求出最坏情况下,要保证试验成功,需要扔蛋的最少次数。f(i,j)表示i个蛋在j层楼上最坏情况下确定x需要的最少次数,f(i,j) = min {max{f(i-1,w-1),f(i,j-w)}+1} w是层数 w=1..j -----+---- ----+--- +-- 在第w楼扔一次蛋 |
2010-08-06 10:53:00 345
原创 二路归并
合并排序(MERGE SORT)是又一类不同的排序方法,合并的含义就是将两个或两个以上的有序数据序列合并成一个新的有序数据序列,因此它又叫归并算法。它的基本思想就是假设数组A有N个元素,那么可以看成数组A是又N个有序的子序列组成,每个子序列的长度为1,然后再两两合并,得到了一个 N/2 个长度为2或1的有序子序列,再两两合并,如此重复,值得得到一个长度为N的有序数据序列为止,这种排序方法称为2—路合并排序。 例如数组A有7个数据,分别是: 49 38 65 97 76 13 27,那么采用归并排序算法的
2010-07-23 10:56:00 700
原创 面试笔试题集合(c++)
<br />面试笔试题集合 <br /> <br />数组 http://bbs.byr.cn/article/CPP/38084<br />内存泄漏 http://bbs.byr.cn/article/CPP/37222<br />算法(二分) http://bbs.byr.cn/article/CPP/38927<br />类型转换 http://bbs.byr.cn/article/CPP/37877<br />内存管理 http://bbs.byr.cn/article/CPP/37858<br
2010-07-20 19:00:00 328
转载 实践-hadoop
<br /> 1.基本概念:Hadoop的HDFS实现了google的GFS文件系统,NameNode作为文件系统的负责调度运行在master,DataNode运行在每个机器上。同时Hadoop实现了Google的MapReduce,JobTracker作为MapReduce的总调度运行在master,TaskTracker则运行在每个机器上执行Task。<br /> 2.main()函数,创建JobConf,定义Mapper,Reducer,Input/OutputFormat 和输入输出文件
2010-07-02 15:38:00 498
转载 最大公约数 最小公倍数
1 借助最大公约数求最小公倍数 步骤: 一、利用辗除法或其它方法求得最大公约数; 二、 最小公倍数等于两数之积除以最大公约数。 举例:12和8的最大公约数为4 12×8/4=24 两数的最小公倍数是24 注:公约数又称公因数。 2 最大公约数 例如:求4453和5767的最大公约数时,可作如下除法. 5767÷4453=1余1314 4453÷1314=3余511 1314÷511=2余292 511÷292=1余219 292÷219=1余73 219÷
2010-06-24 10:24:00 784
原创 Maxflow-Mincut
/********************** 最大流算法 ***********************/ #include #include #define abs(i) ((i) #define N 100 long limits[N][N],last[N],flow[N][N],n,m; //limits数组记录容量, flow记录流量 // last记录某一点在增广路上的前趋:设为 i, 则正向弧标为 i, 反向弧标为-i int Init();
2010-06-23 10:55:00 2209
原创 非递归遍历二叉树
// 中序递归遍历void InOrderTrvDiGui(NODE* pNode){ if(pNode) { InOrderTrvDiGui(pNode->leftNode); cout info; // visit node InOrderTrvDiGui(pNode->rightNode); }}然而,当树的深度很大(比如16)时(假设为满二叉树),树的节点数为 2^0 + 2^1 + 2^2 + ... + 2^15 = 2^16 = 65536,遍历整个二叉
2010-06-23 10:50:00 598
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人