编程
田万鹏
这个作者很懒,什么都没留下…
展开
-
一个关于特殊的排序问题的研究
在下面这个文章中的一个问题:http://topic.csdn.net/u/20110928/15/0ef60bfb-8cb8-471d-a0f0-2b63f6680400.html?seed=1608405708&r=75815377#r_75815377一原创 2011-10-01 17:23:28 · 490 阅读 · 0 评论 -
《编程之美-微软技术面试心得》这本书中的1.11节的转化问题研究:nim拈游戏研究
《编程之美-微软技术面试心得》这本书中的1.11节有一个问题:一堆石块,A和B两个人从里面拿,每次只能拿一个或者任意连续的两个,最后拿到的算赢,先拿者是否有必胜策略:这个问题较为简单:先拿者有必赢策略,只要按照如下规则拿即可,如果有奇数个石块,先拿者只原创 2011-10-03 17:32:23 · 1683 阅读 · 1 评论 -
常数时间内求栈内最大值(iteye上一篇关于百度面试题文章的读后感)
原文:http://www.iteye.com/topic/1116956题目:算法描述:一个栈stack,具有push和pop操作,其时间复杂度皆为O(1)。设计算法max操作,求栈中的最大值,该操作的时间复杂度也要求为O(1)。可以修改栈的存储方式,push,pop的操作,但是要保证O(1)的时间复杂度,空间时间复杂度无要求。正确解法:12楼,原创 2011-11-05 12:00:03 · 1111 阅读 · 0 评论 -
hive代码研究--运行原理(1)- 整体框架
hive就是一个将sql语句转化为MR工具hive的工作原理:1、使用antlr定义sql语法,(详细见hive.g),由antlr工具将hive.g编译为两个java文件:HiveLexer.java HiveParser.java,可以将输入的sql解析为ast树2、org.apache.hadoop.hive.ql.Driver对ast树进行初步的解析(combile),调原创 2011-10-30 17:38:31 · 2930 阅读 · 0 评论 -
hive代码研究--运行原理(2)- genplan过程
genplan是语法分析最重要的一个阶段,在genplan过程中生成一个算子树。1、一条sql语句的结构:一条sql主要包括,insert子句,select子句,from子句,groupby子句,以及其他的条件子句,如limit,orderby等,还有join和union等操作符。其中的from子句,一般可以直接跟一个表,多个表(笛卡尔积等同于join),或者一个子查询,或者由jo原创 2011-10-30 19:14:58 · 1599 阅读 · 0 评论 -
hive代码研究--设计模式(1)- 图(树)遍历
在hive的代码中核心是一个算子树,在算子树优化以及查询计划(MR序列)的生成过程中,多次使用算子树遍历设计模式,这里从总体上对这个设计模式进行介绍。图遍历过程中包含两个模块的工作:分别是遍历器和调度器1、遍历器(GraphWalker):对一颗算子树(或者任务树)进行遍历,遍历是扫描树中的每一个节点的过程,每次经过一个节点的时候,这里包含两个信息,当前节点以及当前状态(这个状态包括这个节原创 2011-11-06 16:32:54 · 1396 阅读 · 0 评论