Apollo Connecting the World

Diligence and Intelligence

Archive for the ‘Programming’ Category

程序员小抄大全

leave a comment »

http://overapi.com/

Advertisements

Written by apollozhao

2013/03/17 at 03:52

[zz]常用算法经典代码(C++版)

leave a comment »

常用算法经典代码(C++版)

一、快速排序

void qsort(int x,int y) //待排序的数据存放在a[1]..a[n]数组中

{int h=x,r=y;

int m=a[(x+y)>>1]; //取中间的那个位置的值

Read the rest of this entry »

Written by apollozhao

2012/10/24 at 04:05

[zz]Ack: 比 Grep 更好用的代码搜索工具

leave a comment »

grep 的苦恼

身为一个程序员,经常要在代码海里面找到某个该死的东西在哪里出现过。大部分人都会用 grep -R pattern . 来递归查找,但是 grep 会把很多你完全不想要的东西挖出来,比如:

  • 版本管理系统的目录。用 svn 的人都知道,svn 会把 .svn 目录扔得到处都是(1.7 版本开始改善了这一点,但某厂还在用 1.6,你懂的),要排除掉不容易。同理, CVS , .git , .hg 这些目录里面的内容通常都不是我们关心的。
  • 备份文件。例如 foo~, #foo# 。
  • 二进制文件。例如 core dump, .o 文件, .a 文件。

Read the rest of this entry »

Written by apollozhao

2012/10/15 at 03:05

Posted in ack, grep, Programming

Tagged with , , , ,

[zz]APL — The God’s Language 上帝的编程语言

leave a comment »

There are three things a man must do
Before his life is done;
Write two lines in APL,
And make the buggers run.
— Stan Kelly-Bootle, The Devil’s DP Dictionary, 1981
这几天大师兄没来实验室,问了下老板才发现是参加ICFP比赛去了(一个关于functional programming language的比赛)。说到FP,老板饶有兴致地向我们介绍了APL这门语言。APL的全称就叫A Programming Language, 一般一个传奇性的东西名字都普通得不能再普通,就好比武侠小说里一把牛逼的宝剑上刻的名字是“无名”这种情况。当时看了下wiki百科,瞬间就被震到了, 因为这是一门比lisp,scheme都还要再high-level的语言,我老板称它为”The God’s Language”。当你看到下面的介绍时,就会发现用这种语言写程序的人,要么是天才,要么是疯子。

每种程序语言都会吹嘘这门语言和其他语言在哪些方面上有多么多么不同,但是当你看到一个APL程序的时候,你会发现这尼玛才是真正的不同!一个APL程序根本就长得很怪异,像一些代数公式一样。当你想要写APL程序的时候,还需要准备一个专门的APL键盘,这种键盘长得下面这个样子:

Read the rest of this entry »

Written by apollozhao

2012/07/19 at 02:17

[zz]为什么我还在编程

leave a comment »

人们通常认为,随着你不断成长你可能不再承担像是编写程序这样的实际工作,而是转而从事更高层次像是管理团队和募集资金这样的任务。在学术界尤其如此,“真正的教授”会把细节分配出去只负责“宏观的事物”。换句话说,组织会呈现纵向协作:在这样的组织结构里,位于顶层的人负责监督其他(廉价)的雇员。

在研究领域,这意味着资深科学家把想法交给青年科学家去实现。世易时移,资深科学家可能无法完成青年科学家从事的工作,但是他们会转变成募集科研资金的专 家。这个模型会不断放大:资深科学家领导中层科学家,而后者负责管理年轻的科学家,如此这般。Jorge Cham将这种模型称为Profzi模式,因为只有资金充足且不断增加的情况下这种模式才能运作得更好。

Read the rest of this entry »

Written by apollozhao

2012/07/11 at 04:38

[zz]程序员技术练级攻略

leave a comment »

from: http://coolshell.cn/articles/4990.html

 

作者:

月光博客6月12日发表了《写给新手程序员的一封信》,翻译自《An open letter to those who want to start programming》,我的朋友(他在本站的id是Mailper)告诉我,他希望在酷壳上看到一篇更具操作性的文章。因为他也是喜欢编程和技术的家伙,于是,我让他把他的一些学习Python和Web编程的一些点滴总结一下。于是他给我发来了一些他的心得和经历,我在把他的心得做了不多的增改,并根据我的经历增加了“进阶”一节。这是一篇由新手和我这个老家伙根据我们的经历完成的文章

我的这个朋友把这篇文章取名叫Build Your Programming Technical Skills,我实在不知道用中文怎么翻译,但我在写的过程中,我觉得这很像一个打网游做任务升级的一个过程,所以取名叫“技术练级攻略”,题目有点大,呵呵,这个标题纯粹是为了好玩这里仅仅是在分享Mailper和我个人的学习经历。(注:省去了我作为一个初学者曾经学习过的一些技术(今天明显过时了),如:Delphi/Power builder,也省去了我学过的一些我觉得没意思的技术Lotus Notes/ActiveX/COM/ADO/ATL/.NET ……)

Read the rest of this entry »

Written by apollozhao

2011/07/21 at 19:35

[zz]《编程之美》阅读心得之快速找出机器故障

leave a comment »

在《编程之美》的1.5节,题目大意是这样的:有很多服务器,假设一个服务器仅存储一个标号为ID的记录,并且机器总量在10亿以下,所有ID均为小于10亿的整数,假设每份数据保存两个备份,这样就有两个机器存储了同样的数据。问题是:

1.假设在某个时间得到一个数据文件ID的列表,是否能快速地找出表中仅出现一次的ID?即快速找出出现故障的机器存储的数据ID。(这里先假设只有一台机器发生故障)

2.如果有两台机器出现故障呢?(假设存储同一份数据的两台机器不会同时出现故障,即列表中缺少的是两个不等的ID)

现在先来讨论问题1。这个问题实质就是快速找出大集合中丢失的数字。

【解法一】对于列表中的每一个ID,遍历列表查找是否存在相同的ID。找到那个没有与其相同的ID的ID即为所求。这种方法时间复杂度为O(N^2),空间复杂度为O(N)。也可以事先对ID列表排序,然后顺次遍历列表,查找同一ID是否在相邻的位置出现两次。这样可以使时间复杂度降为O(N*logN)。但是这些方法对于ID数目庞大的情况不适用,因为ID数目大的话,只能采用外排序,而且需要多次遍历列表。

Read the rest of this entry »

Written by apollozhao

2011/07/15 at 09:54

Posted in Programming

Tagged with ,