CatCoding

当前 22,共 26 页

bsfl 指令和 Bitmap 的一个优化

如何找出 int 中第一个 1 对于这个问题我们可以从最原始的做法开始,如果没找到 1 返回 0,如果第一位为 1 返回 1。所以代码很简单如下: static int first_onebit(int x){ if(!x) return 0; else{ ......

使用 Jekyll 和 Github 搭建博客

为什么要折腾 折腾了几次终于把博客从 wordpress 搬到 Github 了,迁徙这事本来是够麻烦的,而且也比较无聊。不过最终还是抑制不住诱惑,这有下面几点点好处。 编辑方便,专注写作 在线下编辑,可以随便选择自己喜欢的编辑器。当然 wordpress 也有离线编辑工具,不过 Linux ......

Find duplicated Number and Cycle detection

一个有趣的问题,据说这个题目耗费了 Don Knuth 24 小时解决。一起来看看。 You are given an array of integers of length n, where each element ranges from 0 to n - 2, inclusive. Pro ......

eproject

我之前一直用的是 project-mode.el 来管理项目,在碰上代码很多的工程时还是有点不方便,源文件太多速度有点慢。快速检索文件还是可以,需要指定代码目录,可以增加目录。工程的概念还是不太直观,主要用来快速查找文件。以前看有同学推荐过 eproject,当时没仔细看。这会儿想自己写一个,而今天 ......

A Emacs func

这个操作好像经常要用到,拷贝当前光标连续的一段字符串 (除了空白和换行), 写了个小函数来实现。 (defun get-continue-string () (interactive) (skip-chars-backward "^ \n") (setq low (p ......

A Basket-Ball Demo

最近闲暇时间用 C++ 写了个小 Demo,一个小小的篮球模拟。在学校的时候看过《人工智能编程精粹》,里面有个足球模拟,看起来还比较逼真。我这个篮球模拟是比较类似的,主要好玩的地方是在于状态机。图形方面做得很简单,还是用 OpenGL 来实现的,另外用了一个库 glui,这个东西很好,把 GUI 方 ......

姓氏的消失

前些天看到一篇文章有点意思。假设,人口的数目不变,儿子的姓氏随着父亲,那么随着时间的推移一代一代的演化,最后所有的人都只有一个姓了。具体用个例子描述就是:100 个父亲,按照上面的假设会有 100 个儿子,也就是平均每个父亲在下一代会有一个儿子,假设某个父亲姓“王“,并且王在父亲这一代所占的比例是 ......

在外漂着

来上海有一段时间了,在这段时间里一切都还好。 刚来这边一切都感觉比较新鲜,现在慢慢习惯了。在这边的生活比较规律,每天早上八点四十起来,洗刷完毕,早饭是面包片和同事磨的豆浆。这近两个月早餐都是这样,我觉得挺好的,一点都还没感觉到腻,带黑芝麻或者葡萄干的面包片真的很好吃!每天的九点钟开始出发上班,坐上两 ......

C 的面向对象风格代码

OO 是一种编程范型,而不只是特定语言的特定支持,所以用 C 来实现也是可行的。最近碰到的一部分代码都是用 C 实现的面向对象风格,可能是参考了 Python 里面的实现,Python 内部实现的基本对象这块也全是这样的代码。在这里做一个小小的总结。 C 语言里面没有语言层面的面向对象支持,那 OO ......

一种更快的字符串匹配算法 - 源自 Python2.5

Python2.5 的实现中有一个字符串匹配算法,在 s 中查找 p 是否存在,s 的长度为 n,p 的长度为 m。这个算法符合以下要求: 任何情况下都要比 brute-force 算法快 O(1) 的空间,O(m) 的初始化复杂度 O(n/m) 的查找复杂度 最坏情况下不能比 O(nm) 时间复 ......