上一页 1 2 3 4 5 6 7 8 ··· 15 下一页

2012年9月2日

Effective C++条款7:为多态基类声明virtual析构函数

摘要: 要点:带多态性质的基类或者class中有virtual函数,就应该将析构函数声明为virtual,例如class TimeKeeper{public: TimeKeeper(); ~TimeKeeper();};class AtomicClck : public TimeKeeper //原子钟 { }; class WaterClck : public TimeKeeper //水钟 { }; class WristClck : public TimeKeeper //腕表 { };int main(){ TimeKeeper * ptk = getTi... 阅读全文

posted @ 2012-09-02 15:49 as_ 阅读(316) 评论(0) 推荐(0) 编辑

Effective C++条款4:确认对象钱已经被初始化

摘要: 要点:构造函数内赋值和使用初始化列表区别在于1).因为const成员只能被初始化,不能被赋值,所以必须利用构造函数初始化列表进行初始化 eg:class Point { public: Point():_x(0),_y(0){}; Point( int x, int y ):_x(x),_y(y){} //Point(){ _x = 0; _y = 0;} 错误 //Point( int x, int y ){ _x = 0; _y = 0; } 错误private: const int ... 阅读全文

posted @ 2012-09-02 10:41 as_ 阅读(366) 评论(0) 推荐(0) 编辑

2012年8月21日

Hadoop 2.0 Yarn代码:RM与NM代码_心跳驱动服务分析_1 初始阶段(Job提交前)

摘要: 1.概览当RM(ResourcesManager)和NM(NodeManager)陆续将所有模块服务启动,最后启动是NodeStatusUpdater,NodeStatusUpdater将用Hadoop RPC远程调用ResourcesTrackerService中的函数,进行资源是初始化等操作,为将要运行的Job做好准备。以下主要分析在Job提交之前 RM与NM在心跳的驱动下操作。主要涉及的java文件hadoop-yarn-server-resourcemanager下的包org.apache.hadoop.yarn.server.resourcemanagerResourceTracke 阅读全文

posted @ 2012-08-21 16:24 as_ 阅读(2987) 评论(2) 推荐(0) 编辑

2012年8月19日

Hadoop 2.0 Yarn代码:ResourcesManager端代码_RM端各模块服务的启动

摘要: 1.概览以下介绍的NodeManager是如何启动和注册各个服务的主要涉及的Java文件hadoop-yarn-server-resourcemanager下的包org.apache.hadoop.yarn.server.resourcemanager:ResourcesManager.java2.代码分析Hadoop启动时。ResourcesManager的main开始执行1).main函数进行初始化操作,eg:配置信息的读取等等,然后创建ResourcesManager地向执行ResourcesManager的init()函数.执行ResourcesManager的start()函数.2) 阅读全文

posted @ 2012-08-19 14:21 as_ 阅读(1295) 评论(0) 推荐(0) 编辑

编程之美:寻找发帖"水王"

摘要: 1.问题描述快速找出发帖超过一半的的ID问题变型:现在有一个数组,已知一个数出现的次数超过了一半,请用最小的复杂度的算法找出这个数。问题扩展:有三个发帖很多的ID,他们的发帖数目超过了帖子总数目的1/4,请从发帖ID列表中找出它们2.分析与解法每次从列表中删除两个不同的ID,那么剩下的ID列表中,“水王”的ID出现次数仍然超过剩余数目的一半,因此每次删除两个不同的ID,直到剩下的所有ID都相同,那么剩下的就是水王的ID。我们可以设置一个candidate和一个计数器nTimes,candidate为ID列表第一个ID,nTimes初始值为0,遍历整个ID列表,当遍历的ID与candidate相 阅读全文

posted @ 2012-08-19 13:10 as_ 阅读(808) 评论(0) 推荐(0) 编辑

2012年8月18日

Hadoop 2.0 Yarn代码:NodeManager端代码分析_NM端各服务模块的启动

摘要: 1.概览以下介绍的NodeManager是如何启动和注册各个服务的主要涉及的Java文件hadoop-yarn-server-nodemanager下的包org.apache.hadoop.yarn.server.nodemanager NodeManager.java2.代码分析以下均在NodeManager.java中,NodeManager:当Hadoop启动时,NodeManager中的main函数被调用1).main函数输出信息到log日志中,创建NodeMananger对象,调用initAndStartNodeManager(false)2).initAndStartNodeMan 阅读全文

posted @ 2012-08-18 19:18 as_ 阅读(2465) 评论(0) 推荐(0) 编辑

编程之美:求二叉树中节点的最大距离

摘要: 1.问题描述写一个程序求一棵二叉树相距最远的两个节点之间的距离如下图:2.分析与解法对于任意一个节点,以该节点为根,假设这个根有k个孩子节点,那么距离最远的两个节点U与V之间的路径与这个根节点的关系有两种。1).若路径经过Root,则U和V属于不同子树的,且它们都是该子树中到根节点最远的节点,否则跟它们的距离最远相矛盾2).如果路径不经过Root,那么它们一定属于根的k个子树之一,并且它们也是该子树中相距最远的两个顶点因此,问题就可以转化为在字数上的解,从而能够利用动态规划来解决。设第K棵子树中相距最远的两个节点:Uk和Vk,其距离定义为d(Uk,Vk),那么节点Uk或Vk即为子树K到根节点R 阅读全文

posted @ 2012-08-18 14:50 as_ 阅读(5131) 评论(0) 推荐(1) 编辑

编程之美:从无头单链表中删除节点

摘要: 1.问题描述假设有一个没有头指针的单链表。一个指针指向此单链表中间的一个节点(不是第一个,也不是最后一个),请将该节点从单链表中删除。如下图所示:2.分析与解法假设给定的指针为pCurrent, Node* pNext = pCurren->next其中pCurren->next!=NULL,如下图,因为没有头结点,删除pCurren指向的节点B就很困难,而删除节点C就非常容易,于是就现将节点C当中的数据等信息拷贝到节点B上,覆盖节点B原来的数据,然后删除节点C。删除之前删除之后3.代码实现struct Node{ int data; Node* next;}; voi... 阅读全文

posted @ 2012-08-18 13:26 as_ 阅读(665) 评论(0) 推荐(0) 编辑

编程之美:无差错二分查找

摘要: 1.虽然二分查找是十分简单的程序,但是因为循环等操作也是最容易出错的,其中在写循环(或者递归)程序的时候,应该特别注意三个方面的问题:初始条件、转化、终止条件。2.二分查找源码int biseach(char** arr, int b, int e, char* v){ int minIndex = b, maxIndex = e, midIndex; while(minIndex < maxIndex - 1) //若改为minIndex < maxIndex时,容易出现死循环 { ... 阅读全文

posted @ 2012-08-18 10:05 as_ 阅读(906) 评论(0) 推荐(0) 编辑

2012年8月17日

编程之美:编程判断两个链表是否相交

摘要: 1.问题描述给出两个单向链表的头指针,比如h1、h2,判断两个链表是否相交。编程之美为了简化问题,假设两个链表均不带环。如下图:2.分析与解法解法一:直观法,先判断第一个链表的每个节点是否在第二个链表中,这种方法时间复杂度为O(Length(h1)*Length(h2))解法二:hash表计数法,首先将第一个链表的所有节点地址进行hash排序,建立hash表,然后针对第二个链表的每个节点的地址,查询hash表,如果它在hash表中存在,那么说明两个链表有交点。这个方法时间复杂度O(Length(h1)+Length(h2)),空间复杂度O(Length(h1))。解法三:转换为是否有环问题,可 阅读全文

posted @ 2012-08-17 14:54 as_ 阅读(2820) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 ··· 15 下一页

导航