Browsed by
Month: February 2011

老男孩 Old Boy

老男孩 Old Boy

好吧,我承认对韩国电影有偏见,对韩国人有偏见,imdb入围250的,中国只有一部《无间道》,而且还是在240多名,而这部来自韩国的老男孩,却在我国唯一入围的影片之前很多,实在想不明白,然后看了影片之后,的确是感到了些许的震撼,这部cult电影的确有够特色。 高中的时候,迫于学习的压力,同学们非常爱看来自日本的《大逃杀》,那时候不知道什么叫做cult电影,现在,看过不少经典的cult电影,例如《低俗小说》、《发条橙》等,越发喜爱这种类型的电影,也许是因为导演总是能带来不同的idea。 这部韩国的老男孩,虽然看完了也不太清楚为什么叫这个名字,似乎叫别的名字也可以,却能给人一种新鲜的感觉。先是主角被囚禁,再是禁忌之爱,一切都那么的出乎预料,一切都那么的合理。虽然mtime上只给这部电影打了7.0,我确认为这部电影不止这电影评分。之前听过介绍说韩国人用统一的意识来规划国民,所以他们整容整得差不多,拍搞笑电影拍得差不多,然而这部电影却然我感到了不同,跟无间道比,名次差这么多虽然有探讨的空间,然后从电影整体质量来看,能进入top250也不失公允。

判断数组中是否存在两个数之和为指定值

判断数组中是否存在两个数之和为指定值

题目是CLRS 2.3-7。原题如下: Describe a Θ(n lg n)-time algorithm that, given a set S of n integers and another integer x,determines whether or not there exist two elements in S whose sum is exactly x. 初看这个题目,就大约想到用排序来解决。我大概的思路是先排序,然后再用二分查找法去寻找。 看了看CLRS的答案,给出的方法跟我思路不同,他的想法是,添加一个数组,其值为原输入数组中值与x的差,删除掉两个数组中相同的数,然后合并排序那两个数组,如果合并排序后数组中相邻的两个数相同,则说明原数组中有sum为x的元素。 觉得答案给出的方法也比较有意思,于是试着实现了一下。过程中还真遇到了点问题,下次要吸取教训。 问题是这样的,要删除原数组中相同的元素,我用的如下的方法: // assume array, length is defined. int i = 0; for(; i < length – 1; i++){ if(array[i] == array[i+1]){ int tmp = i; while(tmp < length – 1){ array[tmp] = array[tmp + 1]; tmp++; } } } 看出问题在哪儿了吗?在遇到这样{-26 -23 -22 -19…

Read More Read More

这次VPN算是买对了

这次VPN算是买对了

之前一直用的是godaddy的虚拟主机,速度慢不说,还经常抽风,时不时就不能访问了,这次29刀/月购买的linode VPN还真觉得不错,速度感觉比以前的快多了,再加上是VPN,所以得自己装系统,配环境,转移网站,相当于给自己买了个玩具。 另外,今天试了一下Tunnelier+autoproxy翻墙,也相当的简单,速度也不慢,比之前用的Tor的方式好了太多。 总结下来,这次的vpn有三个明显好处,真是买对了。

推荐一个win下用的算法研究环境

推荐一个win下用的算法研究环境

通常用到的IDE都比较庞大,我个人觉得不太简洁,因为如果单纯只是算法研究的话,一个绿色的开发环境会比较方便。 现在我使用的是一个叫msys-cn的项目,它地址是http://code.google.com/p/msys-cn/,从这个地址下载压缩包,安装后,再运行msys.bat就可以进入环境了,一点都不需要自己配置。之后无论是vim还是gcc都很方便。 另外这个项目首页还有如下的教程,写得非常不错,强烈推荐! 1. 介绍、下载与安装方法 2. 操作系统历史回顾 3. MSYS开发环境与开发工具 4. 基于MSYS环境的精短C语言教程 5. 基于MSYS、MingW的Windows编程教程 6. 基于MSYS的 Flex & Bison (编译器开发工具)使用教程 7. 基于MSYS的Win32动态链接库DLL开发 8. 基于MSYS的Windows驱动程序开发 9. 通用PID算法例子 10. 数据结构与算法快速教程 11. 让kqemu加速模块可以在windows的mingw上编译的代码补丁 12. 通用数学矢量类算法封装 13. 手写词法分析教程 14. 通用多源代码格式支持、依赖关系支持Makefile msys-cn

插入排序

插入排序

按照计划,接下来开始实现书中的一些算法。今天是比较简单的插入排序法,但是也不是一次就成功,可见再简单的算法,也需要真正实践才能确保没有问题。 主要问题是处在插入排序需要找到一个key,用于标记当前需要插入的值。其原理想象起来也简单,就是想插入扑克牌一样,把目标扑克牌插入一个已经排序好的牌中,所以需要一个key来标记当前要插入的牌。而平时写冒泡比较多,所以很习惯的就写了两个for循环,然后才发现不太好往下面写了,其实第二循环换成while更加顺畅。 #include void InsertionSort(int array[], int length){ int i = 1; int j = 0; for(; i < length; i++){ int key = array[i]; j = i - 1; while(j >= 0 && array[j] > key){ array[j+1] = array[j]; j–; } array[j+1] = key; } } int main(int argc, char** argv){ int array[] = {8, 7, 6, 5, 4, 3, 2, 1}; int length = 8; int i = 0; printf(“before sort\n”); for(; i < length; i++){ printf("%d ",...

Read More Read More

不求甚解

不求甚解

故事是这样的,刚看了The Tourist,发现Angelina Jolie实在是很有魅力,不是那种长得特别美艳,但是却有种说不出来的吸引人的味道。就到百度百科里面看看,发现了下面这段介绍Angelina Jolie纹身的话–Whiskey Bravo(皮爸的全名是William Bradley Pitt,根据字母表的军事用途William Bradley = Whiskey Bravo)。 看了后怎么也不明白,这个William Bradley怎么就等于Whiskey Bravo了,于是google了一下,原来是这帮百度百科搬运工从老美网站上挪过来的,原文是: Brad’s real name is William Bradley Pitt, which in military alphabet is Whiskey Bravo (William Bradley = Whiskey Bravo). Totally insane, sweet intentions, but the end result is an extra tacky tattoo! 百科里的字母表的军事用途,其实是military alphabet,再google后发现 Official U.S. Military Alphabet A: Alpha B: Bravo C: Charlie D: Delta E: Echo F: Foxtrot G: Golf H: Hotel I: India J: Juliet K: Kilo L: Lima M: Mike N: November…

Read More Read More

谈谈公司的效率

谈谈公司的效率

跟猎头沟通面试著名跨国互联网Y公司是在年前两周,左等右等,一直都没有得到面试的通知,真正面试居然是在年后的一周,而且还仅仅是电话面试,不知道一个电话面试需要准备这么长的时间吗?从投递简历到接到电面,基本差不多1个月的时间。 得到著名软件开发公司M的面试是在年前,而且投递简历的日期比Y公司还晚,如今,已经拿到M公司的offer。Y公司连第二面的通知还没有得到。虽然已经下定决心,是不会去Y公司了,心里还是忍不住抱怨一下Y公司的效率。之前在网上也曾经看过这样的评论,说Y公司收购的企业几乎都弄得不成样子,从面试这一环节,大约也能看得清楚了。 从这一点上看,SE还是表现得不错的,如果要招聘某个职位,立马进行简历筛选,如果是年前计划招聘,那么年前就会打电话约见面试,绝对不会推迟到年后。 Update: Feb 18收到Y公司复试通知,电面后的一周时间

怦然心动

怦然心动

在家的日子就是这么清闲,今天早上睡到11点才起,早午餐也不用思考,老妈都已经做好了。吃饭过后,打开电脑,这些天没有关注verycd了,上去看看有没有什么好东西。发现了一个情人节特辑,昨天是情人节,自己一个人过的,于是就点开这个专辑看看有啥精神慰籍,才发现了这部纯爱电影。 其实爱情更多是拿来向往的,从早先痞子蔡的纯爱作品的到最近几年三十的纯爱作品,我都很喜欢。 电影不长,大概90分钟,讲述的是居住隔壁的两个初中小孩纯爱的故事。电影不追求让你落泪,反而力求营造一种温馨、浪漫的甜甜滋味。是对现代成年人爱情的一种洗礼,脱离了社会中烦杂的物质、情欲,反而追求更为简单的爱情,单纯到仅仅是她能给你带来不一样的感受,单纯到你看到她就会怦然心动,单纯到你会因为她而睡不着觉。 如果你想心灵得到慰籍,看完后又能轻松愉快,这部电影还是值得一看的。

单链逆序寻找

单链逆序寻找

最近老是接触面试,接触了不少题。今天电话面试被问到了这么一题,当时没有给出最佳答案,过后在网上搜索了一下,发现果然还是有更简单的解决办法。(人还是这么懒,没有自己思考,罪过) 题目是:给你一个单链,要求找出倒数第M个元素。 直观的方法是:遍历一次得到元素总长N,再遍历一次第N-M个元素。 另一种改良方法是:遍历一次改单链为双链,再从尾部找到倒数第M个元素。 最佳的办法是:设置两个遍历指针,第一开始遍历并计数,当计数到第M个时,同时开始第二个遍历,当第一个到尾部时,第二个指向的即使倒数第M个元素。 我觉得在面试的时候出这种题目,如果事先没有接触过类似题目的人,能够答出的可能性不高。因为这种解答属于某种灵光一现的解决方案,即使答出来了,也不见得就是真正的想到了,也可能跟我一样是搜索到了类似题目。尽管如此,这道题目解决方法本身还是非常值得学习的,体现了解决问题时,利用了增加的办法,通常人都只想到用一个指针来遍历,如果增加一个,就能解决问题,和这个类似的问题还有寻找双链中的是死链。