并查集笔记

最近在读另一本经典的算法教材:Algorithms(4th edition, Robert Sedgewick and Kevin Wayne),相比其他算法教材,这本书有几个特点:
1.图示非常丰富,阅读起来更有趣,更易懂;
2.给出了测试算法用的不同规模的数据和测试方法,以及展示算法结果所需要的工具。这些工具使得算法的测试、结果展示非常方便、直观。
3.介绍问题时更自然,相比算法导论定义、证明的方式,本书给出算法的应用场景,对需要解决的问题,不断改进算法得到最优结果,逐步改进的思路符合人们研究问题的正常过程,思维不跳跃,使学习过程有逻辑可循。
这本书有一个配套网站,http://algs4.cs.princeton.edu/home/,网站上除了提供书的部分内容,程序和数据下载外,还提供了课程的幻灯片和一些算法过程展示视频,效果非常赞。
下面是我对书中1.5节Case Study:Union-Find一节所做的笔记,可以部分反映出这本书的特点。

问题引入:动态连通性(Dynamic connectivity)
输入是一系列整数对,其中每个整数代表某种类型的[......]

继续阅读

Book note:《比较政治分析》

比较政治分析-mindmap

Book note:《中国哲学简史》思维导图

中国哲学简史思维导图

测试相册

windows下使用makefile示例

一、环境准备

1.安装MinGW
2.修改环境变量,把%MinGW%/bin添加到path中(%MinGW%为MinGW安装路径)
3.把%MinGW%/bin中的mingw32-make.exe复制,并重命名为make
验证上面三步是否成功:
在cmd窗口中输入,make -v,如果输出make版本信息则安装正确。

二、makefile测试
1.在准备测试的路径(如 C:\Users\James\test)下新建如下两个代码文件:
//---------------------------main.c : ---------------------------//
#include "stdio.h"
main()
{
func();
printf("this is main\n");
getch();
}

//---------------------------func.c : ---------------------------//
#include "st[......]

继续阅读

新增文档页面

给博客增加了“文档”页面,顺带恢复并修改了“关于”页面。
如果打开文档页面,会跳到一个由org-mode生成的HTML页面中,里面的内容是技术文档和读书笔记。好记性不如烂笔头,设置文档的目的就是督促自己把有用的信息点点滴滴都记录下来,虽然琐碎,但当初为了解决每个问题花费了时间,整理出来以后就有了参考,同时也可以给其他人以借鉴。
其实这样的笔记一直在做,以前在OneNote上,后来在Wiz中。直到我看到org-mode生成的漂亮的HTML页面,才体会到Linux世界的文档工具何其强大。关于笔记软件日后我会写一篇总结的日志,这里不多说了。以后只要是结构化的笔记我都会用org-mode记录,然后发布到这里。
文档的内容会不断更新,越来越丰富,由于记录内容都是正在学习的,肯定有不准确或是走弯路的地方,特此提醒,也欢迎帮我排错。

离乡情怯

春节假期结束了,火车行驶了四十几个小时,把我从寒冷的西北又带到了温暖的南方,从家带向了学校。

下了火车,用了半个小时才买到广州地铁的车票,我背着装满厚衣服的书包,拎着箱子挤进了车厢。背上的书包不时碰到别人,我一边道歉一边取下包,站稳了位置。这时后边有人推我,我知道他要往前走,让出一个位置。一对年纪六十上下的大叔大妈提着大包小包挤了过去,车座上的人连忙让座,他们坐了下来放置好行李。

大叔出了一头的汗,站着的乘客好心,递给他几张纸巾,他接过来擦拭额头上的汗水,同时感叹广州已经有些热的天气,给他纸巾的大姐用广式普通话应答着。我欣慰于广州市民的热情,联想起北京有些公交上售票员对扛着行李的外地人的态度。

终于喘了口气,老两口感叹着进地铁的不易,大约是过验票口时遇到了点困难。

我打量着他们,头发白了一多半,身体还健康,看穿着应该是从小地方来的。他们带着三个捆扎起来的纸箱和两个包,我根据箱包的大小排列组合了几次才得到两个老人提这几件行李的方式。

想必箱子里都是家乡的土特产,而他们应该是来看儿女的吧。

他们的儿女为什么不来接站呢?哪怕上班也要请假来啊,从过惯了的家乡[......]

继续阅读

Book note:《我是沃兹》

父亲告诉我的方式是:不要死记硬背零件如何形成电路,而是理解电子流动在哪里才形成有用的电路;不要仅仅阅读线路图或是书上的内容,而要真正心领神会。

因为我已是成年人,有我自己的道德观——深刻关注人民的生活疾苦。我开始寻找生活真谛——如今我仍在这样做——我行事做人只为自己和他人拥有一个快乐的人生。

对政府行为,我所感受的震惊和恶心非笔墨所能形容:他们将我们的人生玩弄于股掌之间,并非如父亲所说,他们关心民众疾苦。

我具有幽默感,对生活我也保持这样的态度,只有快乐会成为我的选择。我认为是否快乐,取决于自己,只是自己。

我相当清楚自己要成为一位设计电脑的工程师,一位编写软件的工程师,一位风趣的工程师,一位愿意教授他人的工程师。

我清楚自己从不想玩社交游戏。即使到22岁,我也如此肯定自己并不想从工程领域调至管理层。我不愿进入管理层,进行政治性的争斗,或是踩着别人的肩膀往上爬。

大多上白班的人都喜欢在回家做些完全不同的事情。有些喜欢在家看电视,但我则喜欢做电子工程。我热衷于此,并以此为乐。

在我心中,道德举足轻重,至今我仍不能真正明白他为何对我撒谎。但是,[......]

继续阅读

Book note:《黑客与画家》

保罗·格雷厄姆有一套完整的创业哲学,他的创业公式是:

1.搭建原型

2.上线运营

3.收集反馈

4.调整产品

5.成长壮大

他认为一定要特别关注用户需要什么,这样才有办法将一个坏项目转变成好项目。他说:"许多伟大的公司,一开始的时候做的都是与后来业务完全不同的事情。乔布斯创建苹果公司后的第一个计划是出售计算机零件,然后让用户自己组装,后来才变成开发苹果电脑。你需要倾听用户的声音,琢磨他们需要什么,然后就去做。"

创始人本身比他的创意更重要。

作者目的:通过这本书让普通读者理解我们所处的这个计算机时代。

作者试图从许许多多不同的方面解释这个时代的内在脉络,揭示它的发展轨迹,帮助你看清我们现在的位置和将来的方向。

想把握这个时代,就必须理解计算机。理解计算机的关键,则是要理解计算机背后的人。

我们的时代是程序员主导的时代,而伟大的程序员就是黑客。

根据理查德·斯托尔曼的说法,黑客行为必须包含三个特点:好玩、高智商、探索精神。
黑客价值观的核心原则可以概括成这样几点:分享、开放、民主、计算机的自由使用、[......]

继续阅读

一升庵经营之道

作为吃货一枚,对和饮食有关的影视作品有爱应该是很好理解的。在家看电视时,有些美食节目也会让我停下飞快换频道的手指。

看完《深夜食堂》后继续寻找,找到的第二部以食物为主题的剧集是同样来自日本的《料理仙姬》。故事并不复杂,讲述坚持传统的日本料理店一升庵里的大小事情,每集一个主题。抱着娱乐的心态来看,却从料理店的年轻老板娘半田仙(苍井优饰演)身上学到一些为人处事的道理:

1.让对方吃到美好食物的心情最重要。

这部剧给我留下最深印象的不是具体烹制食物的技法,而是工作反映出的态度。阿仙制作料理时自然发出的微笑以及对食物喃喃说出的"变得更好吃啊",透露出她对料理制作的热爱。她几次提到,让对方吃到美好食物的心情是最重要的,这话语里是爱人之心。出于爱,还是利润,还是炫技,效果会不同,因为这背后反映出不同的动机:为己还是为人。

2.对专业极致、完美的追求。

这其实是个老话题了,日本是个特别善于在某种技艺上极致追求并且取得巨大成就的国家,令人尊敬。茶道、剑道、插花等早已是日本文化象征,本剧中同样表现了这种文化:做味增时一粒粒的挑选黄豆,切食材时刀法一丝不苟,修缮房屋的木工[......]

继续阅读