程序员编程艺术第一~十章集锦与总结(教你如何编程)--持续更新中

来源:互联网 发布:燕十八知乎 编辑:程序博客网 时间:2024/04/25 23:49

程序员编程艺术第一~十章集锦与总结--面试、算法、编程

 

作者:July、编程艺术室。
出处:http://blog.csdn.net/v_JULY_v 


    围绕“面试”、“算法”、“编程”三个主题的程序员编程艺术系列(简称TAOPP系列)从今年4月写第一篇起,至今快有2个月。2个月的创作中,写了十章,共计13篇文章。这是本人的第4大原创作品,不过与之前微软面试100题系列红黑树系列,及十三个经典算法研究系列相比,编程艺术系列的某些篇文章的作者除了我本人自己,或多或少还得到了不少朋友的支持,我把这些朋友组织起来,在网上成立了一个虚拟“工作室”,它的名字叫做编程艺术室。

    编程艺术系列最初名为程序员面试题狂想曲,即为面试服务,后来随着加入与我一起创作的人越来越多,我们逐渐意识到,为面试服务不应该成为我们最终或最主要的目的,而应该注重提高广大初学者的编程能力,以及如何运用编程技巧和高效的算法解决实际应用问题。这才是计算机科学与编程的本质。于是,我们便把程序员面试题狂想曲系列更名为程序员编程艺术系列,然后把狂想曲创作组确定为编程艺术室。并提出了我们的宗旨,即如下,编程艺术室致力于以下三点工作:

  1. 针对一个问题,不断寻找更高效的算法,并予以编程实现。
  2. 解决实际中会碰到的应用问题,如第十章、如何给磁盘文件排序。
  3. 经典算法的研究与实现。

总体突出一点:编程,如何高效的编程解决实际问题。

    刚开始的时候,我们是不敢给自己戴艺术这个高帽子的,因为艺术的提炼是一个非常非常艰难的过程,且我们全部都是一群庸人。但是我们很想也非常乐意接受这个挑战。所以,一边带着万分的惶恐,一边认真细心的创作每一章,等到发布后,再对每一章任何一个细节仔细推敲与琢磨,反复思考,反复修正,反复完善,绝不轻易放过任何一个问题,漏洞,和bug。但即便如此,仍然冒出了很多的问题。幸运的是,有广大的读者朋友们对编程艺术系列和我们给予热心的指导与优化建议,更重要的是他们还耐心细致的对编程艺术系列提出了非常多的且异常宝贵的批评指正与修订完善的意见。

    没有编程艺术室全部人员的加入创作,编程艺术系列将比现在所呈现在大家面前的还要糟糕(至少我个人现在是这么认为的),而如果没有众多网友,朋友们的修正与完善,编程艺术系列将更显不足,从而失去它本身该有的持久动力与明天。所以,非常感谢所有热心的朋友给予编程艺术系列所有的指导和意见,你们的反馈给了我们的创作很大很大的帮助,同时,也感谢本社区编辑的推荐。非常感谢。最后,恳请广大读者对编程艺术系列继续监督,并随时予以批评指正(我们不能残留任何一个bug)。因为编程艺术系列最后可能要写到第六十章。谢谢。

    ok,以下是已经写了的编程艺术系列的前二十二章+后续更新,共27篇文章,希望你能从中感受到编程的技巧与乐趣(点击链接,即可打开):

  • 无私分享,造福天下 
    • 第一章、左旋转字符串
    • 第二章、字符串是否包含问题
    • 第三章、寻找最小的k个数
    • 第三章续、Top K算法问题的实现
    • 第三章再续:快速选择SELECT算法的深入分析与实现
    • 三之三续、求数组中给定下标区间内的第K小(大)元素
    • 第四章、现场编写类似strstr/strcpy/strpbrk的函数
    • 第五章、寻找满足条件的两个或多个数
    • 第六章、求解500万以内的亲和数
    • 第七章、求连续子数组的最大和
    • 第八章、从头至尾漫谈虚函数
    • 第九章、闲话链表追赶问题
    • 第十章、如何给10^7个数据量的磁盘文件排序
    • 第十一章、最长公共子序列(LCS)问题
    • 第十二~十五章:数的判断,中签概率,IP访问次数,回文问题(初稿)
    • 第十六~第二十章:全排列,跳台阶,奇偶排序,第一个只出现一次等问题
    • 第二十一~二十二章:出现次数超过一半的数字,最短摘要的生成
    • 第二十三、四章:杨氏矩阵查找,倒排索引关键词Hash不重复编码实践
    • 第二十五章:Jon Bentley:90%无法正确实现二分查找
    • 第二十六章:基于给定的文档生成倒排索引的编码与实践
    • 第二十七章:不改变正负数之间相对顺序重新排列数组

     编程艺术系列已经发布的上十章,仍有很多很多的问题与不足,但永久勘误,永久优化。如果读者朋友对编程艺术系列任何一章有任何问题,和建议,或者发现了以上任何一章的问题,错误,漏洞,和bug,欢迎及时反馈给我们,我们将感激不尽。当然,如果有兴趣,我们也欢迎您加入我们--编程艺术室:

  1. 编程能力较强
  2. 有一定的业余时间
  3. 工作经验越长越好(能力出众的在读研究生或ACM人员也可以考虑)
  4. 愿意分享平时工作中的项目经验或性能优化建议
  5. 热爱算法者优先。

符合以上条件的朋友欢迎加入编程艺术室。有意者,可随时联系我(zhoulei0907@yahoo.cn),以为大家创造更多的价值,更好的服务。谢谢。

原创粉丝点击