【2007年,写此连载时,自己作序如下】
在几年前,我就有些冲动,想把从源码中看到的东西记下来,这里面主要的缘由是当我接触大师们的作品时,除了钦佩之情之外,更多的便是感激。我也想把这份激动带给其它的同仁们,希望在看我余下的这些篇章的时候,也能有所收获,并从中得到快乐!
以下所有文章皆结合工程中的实际代码而来,有些是我自己动手写的,更多的则是前辈高人所做,我将在引用这些代码片段的时候说明这些情况。同时算法和数学也密不可分,因此在必要的时候,我会给出公式,力求严谨。事实上在解决实际问题时,需要很多方面的知识,同一问题的算法也有多种,很多难分伯仲,在此只是集中分析了个别算法,期望能起到抛砖引玉的效果,如果有道友觉得不过瘾,大可在网上搜罗相关专题,追查到底。
源代码是软件实现的根本,而软件的三大要素中的数据结构和算法也都是在源代码中表现的淋漓尽致,一个软件质量的优劣,一个程序员水平的高低直接和代码密切相连,观摩前人留下的优秀代码无疑是提高自身实力的有效途径,算法中很多抽象的理论在源代码中如此鲜活,也更容易被我们所理解吸收,这也是我写这些文章的用意。
算法涵盖广泛,我个人所涉及也只是其中很少的部分,比如现在极其热门的脚本编程,硬件编程,dsp编程,SQL编程等等我都不会提及,当然并非轻视其中的算法成分,而是确实因为个人经历所限,没有深入的参与这些工种中,但我相信算法是相通的,如果了解原理,移植应该不是问题,如果能做到胸有成竹,马到成功,那便是学有所成了,大家共勉,努力。
本人才疏学浅,算法如此博大精深精深,很多知识只能领略皮毛,甚至还没能真正入门,所以如有谬误之处,还望指正,在此先谢过了。
【个人网站几经沉浮,最终决定全部转为blog形式】
追其算法本源,和蛋鸡相生悖论颇有些相似,算法来源于实际,高于实际,有应用于实际。所以一味的抬高它,或贬低它都是不恰当的,同样的技术在不同人的使用下,结果截然不同。多储备点,深入思考些,探求算法本源,一通百通并能用在实际工作中。总之,不去死记硬背,不生搬硬套,但能把问题解决对,而且解决的漂亮就是能人。