2014年1月4日

使用github管理你的代码

摘要: 关于为什么使用github,网上已经有很多讨论了。当然选择还有google code, Bitbucket,sourceforge。github有如下优势:1. github更有利于开源项目的发展source forge并没有充分体现这一点,它更像一个开源软件下载站。至于Google Code,这是个传奇。但是已经被新CEO布林颁布的大扫除政策打死了,属于边缘化业务,Google不会投入新精力了,只是碍于原本有很多项目依旧运行在Google Code上,所以才没有像Google Reader一样彻底关闭。但是基本上活跃用户都迁走了。在github上使用开源项目的流程是:a. 下载,可以直接下载 阅读全文

posted @ 2014-01-04 22:31 anzhsoft 阅读(190) 评论(0) 推荐(0) 编辑

2014年1月3日

awk 详解+实例

摘要: 1.awk简介awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk的处理文本和数据的方式是这样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作。如果没有指定处理动作,则把匹配的行显示到标准输出(屏幕),如果没有指定模式,则所有被操作所指定的行都被处理。awk分别代表其作者姓氏的第一个字母。因为它的作者是三个人,分别是Alfred Aho、 阅读全文

posted @ 2014-01-03 10:06 anzhsoft 阅读(202) 评论(0) 推荐(0) 编辑

sed-加速你在Linux的文件编辑

摘要: 1.Sed简介sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。以下介绍的是Gnu版本的Sed 3.02。2.定址可以通过定址来定位你所希望编辑的行,该地址用数字构成,用逗号分隔的两个行数表示以这两行为起止的行的范围(包括行数表示的那两行)。如1,3表示1,2,3行,美元符号( 阅读全文

posted @ 2014-01-03 10:01 anzhsoft 阅读(194) 评论(0) 推荐(0) 编辑

工作中常用的Linux命令

摘要: 1.从其他机器拷贝文件夹格式: scp -r 文件夹名 用户名@机器名:/路径范例: scp -rsearch work@zjm-testing-ps23.zjm.baidu.com:/home/work/2.查看哪个程序在用特定端口格式: netstat-nap | grep 端口号范例: netstat -nap| grep 80803.实时监控日志文件内容格式: tail -f 日志文件名范例: tail -fui.log 说明:这显示ui.log文件的最后十行。tail 命令继续显示添加到ui.log文件中的行。显示会一直继续,直到您按下 Ctrl-C 按键顺序来停止4.查看指定用户拥 阅读全文

posted @ 2014-01-03 09:54 anzhsoft 阅读(155) 评论(0) 推荐(0) 编辑

2013年12月28日

海量数据:判断一棵树是否为另一棵树的子树

摘要: T1是一棵含有几百万个节点的树,T2含有几百个节点。判断T2是否是T1 的子树。首先考虑小数据量的情况,可以根据树的前序和中序遍历所得的字符串,来通过判断T2生成的字符串是否是T1字符串的子串,来判断T2是否是T1的子树。假设T1的节点数为N,T2的节点数为M。遍历两棵树算法时间复杂性是O(N + M), 判断字符串是否为另一个字符串的子串的复杂性也是O( N + M)(比如使用KMP算法)。所需要的空间也是O(N + M)。这里有一个问题需要注意:对于左节点或者右节点为null的情况,需要在字符串中插入特殊字符表示。否则对于下面这种情形将会判断错误:因此如果插入特殊字符,上述两棵树的中序和前 阅读全文

posted @ 2013-12-28 19:35 anzhsoft 阅读(840) 评论(0) 推荐(0) 编辑

检查一个二叉树是否平衡的算法分析与C++实现

摘要: 今天面试一个实习生,就想既然是未出校园,那就出一个比较基础的题吧,没想到答的并不如人意,对于树的操作完全不熟悉,因此此题算是未作答。原来我想看一下他分析问题的思路,优化代码的能力。接下来会把最近半年我出的面试题整理出来,以来share给其它同事,而来算是自己校园记忆的一个总结,毕竟自己在项目中已经很久未用到这些知识。其实很多题目都是来源于CareerCup.com。这上面汇集了许多IT名企的面试笔试题目,非常值得找工作的人学习。言归正传,什么是二叉树是否平衡的定义,如果面试者不知道,那肯定要提出来,而不是简简单单说我对树不熟悉,或者找其他更多更多的理由。其实可以根据平衡的定义,直接递归访问整棵 阅读全文

posted @ 2013-12-28 14:50 anzhsoft 阅读(1065) 评论(0) 推荐(1) 编辑

2013年12月25日

Cracking the Coding Interview:: 寻找有环链表的环路起始节点

摘要: 给定一个有环链表,实现一个算法返回环路的开头节点。 这个问题是由经典面试题-检测链表是否存在环路演变而来。这个问题也是编程之美的判断两个链表是否相交的扩展问题。首先回顾一下编程之美的问题。 由于如果两个链表如果相交,那么交点之后node都是共享(地址相同)的,因此最简单暴力的方法就是两个for循环,判断该链表的node是否属于另外一个链表。但是这个算法复杂度是O(length1 * length2)。如果链表较长,这个复杂度有点高了。当然也可以遍历其中某个链表,将node的地址存储hash table中;然后接下来遍历另外一个链表,查找node是否在这个hash table中。这样的话时间复杂 阅读全文

posted @ 2013-12-25 13:07 anzhsoft 阅读(224) 评论(0) 推荐(0) 编辑

2013年12月23日

C++11:使用 auto/decltype/result_of使代码可读易维护

摘要: C++11 终于加入了自动类型推导。以前,我们不得不使用Boost的相关组件来实现,现在,我们可以使用“原生态”的自动类型推导了!C++引入自动的类型推导,并不是在向动态语言(强类型语言又称静态类型语言,是指需要进行变量/对象类型声明的语言,一般情况下需要编译执行。例如C/C++/Java;弱类型语言又称动态类型语言,是指不需要进行变量/对象类型声明的语言,一般情况下不需要编译(但也有编译型的)。例如PHP/ASP/Ruby/Python/Perl/ABAP/SQL/JavaScript/Unix Shell等等)靠拢,通过弱化类型实现编程的灵活性;而是在保持类型安全的前提下提高代码的可读性, 阅读全文

posted @ 2013-12-23 18:04 anzhsoft 阅读(488) 评论(0) 推荐(0) 编辑

2013年12月21日

C++ 仿函数/函数指针/闭包lambda

摘要: 在上一篇文章中介绍了C++11新引入的lambda表达式(C++支持闭包的实现),现在我们看一下lambda的出现对于我们编程习惯的影响,毕竟,C++11历经10年磨砺,出140新feature,对于我们的programming idiom有深远影响。我们先看一下是不是lambda的出现对于仿函数的影响。1) 仿函数wikipedia 的定义:A function object, also called a functor, functional, or functionoid, is a computer programming construct allowing an object to 阅读全文

posted @ 2013-12-21 17:59 anzhsoft 阅读(1039) 评论(0) 推荐(0) 编辑

2013年12月20日

C++闭包: Lambda Functions in C++11

摘要: 表达式无疑是C++11最激动人心的特性之一!它会使你编写的代码变得更优雅、更快速! 它实现了C++11对于支持闭包的支持。首先我们先看一下什么叫做闭包维基百科上,对于闭包的解释是:In programming languages, a closure (also lexical closure orfunction closure) is afunction or reference to a function together with a referencing environment—a table storing areference to each of the non-local 阅读全文

posted @ 2013-12-20 17:29 anzhsoft 阅读(471) 评论(0) 推荐(0) 编辑

导航