推些C语言与算法书籍
c语言系统学习与进阶:
1. C primer plus
C primer plus 作为一本被人推崇备至的 c 入门经典,C primer plus 绝非浪得虚名。应该
算得上 C 教材里最好的入门书了。
在知识广度上,很少有书能匹及。它能为你系统学习 c 提供一个良好的平台。作者对 c
的见解精辟。在娓娓叙述的同时,作者辅以大量程序以分析。它让我对 C 有了更加系统的全
新认识。决非国人所写的那些公理化的教条说教,我觉得作者把自己的心血全部吐露。书很
厚,近 700 页,却不没有让我觉得任何的烦琐。甚至是兴趣盎然。我把上面所有的课后题目
都做了。
最为重要的是,看完这本书后,我再也不觉得c 很高深枯燥无味了。如果你问我,你最
大收获是什么。 我会告诉你,兴趣!
2. The C programming language
拿到这本薄薄的书,很多人开始怀疑, C 语言是这么几百页能讲清楚的么。看完这本书,
我想答案已经很明了,却真的让人感到震憾。什么是好书?无法删减的书才是真正的好书。
K&R 的书一如 C 语言的设计理念:简单而高效 里面的习题建议都认真做一遍,而且是
在 linux 下用 vi 来做,用 makefile 来编译,用 shell 脚本来进行测试,本来第八章的题就
是和 linux 相关的 计算机的大学生们不应只会在 WINDOWS 下用 VC 来编程,而都应该在
linux 环境下进行程序设计,因为 linux 本身就是为开发者准备的操作系统。
3. C和指针
这本书最大的特点就是和指针结合在一起进行讲解, 通过一些经典的 C 例题对所学的知
识进行巩固,对指针的基础和深入的探讨,有助于初学者更好的理解 C 语言,还有明白 C
的存储机制。我之前买了《C 语言详解》和《C Primer Plus》结合这本书一起学习,可以
说是完美的,希望每个热爱 C 语言的人能够拥有这本书。
我在这里推荐给所有想学好 C 语言的朋友!
4.C 专家编程
感觉这本书的特色:
1.全书如一部优美的故事,但听作者娓娓道来.
2.语言风趣活泼,除了 c 语言,还教会了我们很多做人做事的道理.
3.作为 Sun 公司的工程师,内功极深,不迷信任何权威,还经常调侃下 ANSI C 委员
会,ISO 组织和 GNU 的作品(如 GCC).
4.把 c 讲解到了一个很高的层次,深入剖析了其他书上没有提到过的好东西.
5. C缺陷与陷阱
很好的书,不是初级读物,但也不过于艰深,而且厚度刚刚好,让人在热情高涨阶段读
完,不致于到了一半时间就气馁。
对于 C 程序员来说,特别是对于入门没多久,有过一段时间编程经验的新手来说,是本
很少的书。告诉你在 c 语言编程时常常可能会遇到到问题。例如老的库函数中字符串处理函
数中存在的一些问题,如何规避。指针越界,野指针等带来的问题等等。非常值得阅读。
6. C标准库
C 标准库“圣经”,提供完整源代码,全面深入阐述库函数的实现与运用。C 程序员必
备参考书。本书是由世界级 C 语言专家编写的 C 标准库经典著作。英文版已经重印十多次,
影响了几代程序员。本书结合 C 标准的相关部分,精辟地讲述了每一个库函数的使用方法和
实现细节,这正 是一个真正的 C 程序员所必须掌握的。更重要的是,书中给出了实现和测试
这些函数的完整 源代码。可以让你更深入地学习 C 语言。不仅如此,本书还讨论了一些即使
是最有经验的 C 程序员通常也不熟悉的知识,比如国际化和独立于区域设置的程序的编写、与
构建库相关的概念和设计思想。
7.C语言解惑
就内容而言,本书不深,适合初学者加深一下,或者作为学习的辅助资料。内容也
不多, 不会引起恐惧。学编程语法是必须,更重要的内容是学会语法以后要多读人的思想。而且
本书的编排比较有趣,虽然内容不多,但处处精华,需要多想想才能体会作者深意。
算法书籍:
学计算机的人是幸福的,因为在这个领域中有如此多的通俗易懂(相对来说)的经典好书,你需要做的只是坚持把它们一本一本读下去而已。在这里列出一些我看过或者准备看的算法书籍,以供参考。
1. CLRS 算法导论 算法百科全书,只做了前面十几章的习题,便感觉受益无穷。
2. Algorithms 算法概论 短小精悍,别据一格,准经典之作。一个坏消息: 同算法导论,该书没有习题答案。好消息:习题很经典,难度也适中,只需花点点时间自己也都能做出来。另有中文版名《算法概论》,我没看过,不知道翻译得怎么样。如果有心的话,还是尽量看原版吧,其实看原版与看中文版花费时间不会相差很大,因为大部分时间其实都花费在做习题上了。
3. Algorithm Design 算法设计 很经典的一本书,很久之前看的,遗憾的是现在除了就记得它很经典之外其它都忘光了。
4. SICP 计算机程序的构造和解释 六星之书无需多言,虽然这不是一本讲算法的书,但看完此书有助于你更深入的理解什么是递归。我一直很强调习题,看完此书后你至少应该做完前四章的太部分习题。否则那是你的遗憾,也是作者的遗憾。
5. Concrete Mathematics 具体数学 有人说看TAOCP之前应该先弄清楚这本书的内容,要真是如此的话那我恐怕是看不到TAOCP了。零零碎碎的看了一大半,很多东西都没有时间来好好消化。如果你是刚进大学不久的本科生,有着大把的可自由支配时间,那你幸运又幸福了,花上几个月时间好好的读一下此书吧,收获绝对大于你的期望值。
6. Introduction to The Design and Analysis of Algorithms 算法设计与分析基础 很有趣的一本算法书,有许多在别的书上找不到的趣题,看完此书绝对能让你大开眼界,实在是一本居家旅行,面试装逼的必备佳作。
7. 编程之美--微软技术面试心得 虽说是一本面试书,但如果把前面十几页扯掉的话,我更愿意把它看作是一本讲解题思维的算法小品。在书中,作者通常是给出一个平常解法,然后再一次又一次的优化改进,你可以很清楚的看到基本的算法设计思想是如何得到运用以解决实际问题的。如果你已经有了一些算法的基础,看完本书应该能使你的算法应用能力得到一定的提高。另外,本书生动有趣,也同样适合于初学者。
8. Fundamentals of Algorithmics 算法基础 也是很久之前在学校图书馆借来看的,内容记不太清楚了,只隐约记得此书的动态规划章节犹为出彩。应该是很经典的一本书,个人以为足以和算法导论等所谓当世经典平分秋色,但是怎么好像被人提到的不多,或许是我孤陋寡闻了。
9. How to solve it 怎样解题 二十世纪最伟大的数学思想家之一波利亚的力作,讲一般性的解题方法:怎么认识问题,怎么转换问题,怎么解决问题,如何在问题中得到启发,如何找到一个通往答案的方向。
10. Programming interviews exposed 程序员面试攻略 一本消遣之作。个人以为要比国内的某“XXX面试宝典”纯粹一些,至少也有一些启发性的内容,而不单单是面试题解库。
11. Programming Pearls 编程珠玑 学习算法不仅需要像Alogrithms,算法导论这样的重量级的内功心法,像《编程之美》、《编程珠玑》这样的轻量级的轻功身法也必不可少。前些年网上不是很流行像“给你10亿个数,找到最大的n个”或者“给你10亿个数,找出现次数最多的那个数”之类的百度面试题吗?看了此书你就知道怎么解决了。相比于《编程之美》来说,本书中的示例技巧性略低一些,但是也更有实际应用价值一些。
12. 算法艺术与信息学竞赛 如果算法导论是九阳神功,那这本无疑就是九阴真经。本书是专为参加一些诸如ACM之类程序设计比赛的同学而写的,江湖人称“黑书”。里面讲的都是一些在编程比赛中常用的算法、数据结构,以及一些数论和计算几何等。我虽然并不搞竞赛,但也从此书中受益颇多。
13. An Introduction to Probability Theory and Its Applications 准备看的,现在才发现概率论有多么重要,可惜本科的时候没有好好学。前不久一个同学问我个问题,我半天弄了一个程序给他,他说:这里就不是相关系数么,Excel一下就完事!我晕,我还真不知道那就是相关系数。
14. Numerical Analysis 这本的作者是Richard L. Burden,J. Douglas Faires 数值分析,讨论各种数值算法,比如插值、拟合、积分、微分方程的求解、线性和非线性方程组求解等。准备详细看。
15. TAOCP 计算机程序设计艺术 传说中的TAOCP,说的人多,看的人少。TAOCP四卷堪称是算法藏经阁中的易筋经或者是少林七十二绝技。天下武学,尽出少林,天下算法,尽出TAOCP也。这点你可以顺便翻开一本算法书看看他的引用文献就知道了。
推些C语言与算法书籍的更多相关文章
- linux内核中的C语言常规算法(前提:你的编译器要支持typeof和type)
学过C语言的伙伴都知道,曾经比较两个数,输出最大或最小的一个,或者是比较三个数,输出最大或者最小的那个,又或是两个数交换,又或是绝对值等等,其实这些算法在linux内核中通通都有实现,以下的代码是我从 ...
- C语言经典算法 - 多维矩阵转一维矩阵的代码
下边内容内容是关于C语言经典算法 - 多维矩阵转一维矩阵的内容,应该能对码农也有好处. #include <stdio.h>#include <stdlib.h>int mai ...
- 一张有料的图片!!!附文件-图片合成器C语言实现算法
凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1.打开F盘,先找两个文件,一个是压缩文件(2.rar),另一个是一张图片(1.jpg),将其放到F盘目录下, ...
- C语言查找算法之顺序查找、二分查找(折半查找)
C语言查找算法之顺序查找.二分查找(折半查找),最近考试要用到,网上也有很多例子,我觉得还是自己写的看得懂一些. 顺序查找 /*顺序查找 顺序查找是在一个已知无(或有序)序队列中找出与给定关键字相同的 ...
- C语言排序算法之简单交换法排序,直接选择排序,冒泡排序
C语言排序算法之简单交换法排序,直接选择排序,冒泡排序,最近考试要用到,网上也有很多例子,我觉得还是自己写的看得懂一些. 简单交换法排序 /*简单交换法排序 根据序列中两个记录键值的比较结果来对换这两 ...
- c/c++面试总结---c语言基础算法总结2
c/c++面试总结---c语言基础算法总结2 算法是程序设计的灵魂,好的程序一定是根据合适的算法编程完成的.所有面试过程中重点在考察应聘者基础算法的掌握程度. 上一篇讲解了5中基础的算法,需要在面试之 ...
- c/c++面试指导---c语言基础算法总结1
c语言基础算法总结 1 初学者学习任何一门编程语言都必须要明确,重点是学习编程方法和编程思路,不是学习语法规则,语法规则是为编程实现提供服务和支持.所以只要认真的掌握了c语言编程方法,在学习其它的语 ...
- R语言分类算法之随机森林
R语言分类算法之随机森林 1.原理分析: 随机森林是通过自助法(boot-strap)重采样技术,从原始训练样本集N中有放回地重复随机抽取k个样本生成新的训练集样本集合,然后根据自助样本集生成k个决策 ...
- c语言经典算法——查找一个整数数组中第二大数
题目: 实现一个函数,查找一个整数数组中第二大数. 算法思想: 设置两个变量max1和max2,用来保存最大数和第二大数,然后将数组剩余的数依次与这两个数比较,如果这个数a比max1大,则先将max1 ...
随机推荐
- SQL Server里的自旋锁介绍
在上一篇文章里我讨论了SQL Server里的闩锁.在文章的最后我给你简单介绍了下自旋锁(Spinlock).基于那个基础,今天我会继续讨论SQL Server中的自旋锁,还有给你展示下如何对它们进行 ...
- Http客户端识别的方法
Http用户识别的机制方法分为如下几种: 1).承载用户身份的HTTP首部 2).客户端IP地址跟踪,根据客户端IP地址进行识别 3).用户登录,用认证方式设别用户 4).使用胖URL,一种在UR ...
- [ASP.NET]分析MVC5源码,并实现一个ASP.MVC
本节内容不是MVC入门教程,主要讲MVC原理,实现一个和ASP.NET MVC类似基本原理的项目. MVC原理是依赖于ASP.NET管道事件基础之上的.对于这块,可阅读上节内容 [ASP.NET]谈谈 ...
- Linq专题之Lambda表达式
这一节我们讲的Lambda表达式跟匿名函数有关.Lambda表达式就是一个匿名函数,它可以包含表达式和语句,并且可以创建委托和表达式树. Lambda表达式的组成: 输入参数.Lambda运算符(=& ...
- Winform开发框架的重要特性总结
从事Winform开发框架的研究和推广,也做了有几个年头了,从最初的项目雏形到目前各种重要特性的加入完善,是经过了很多项目的总结归纳和升华,有些则是根据客户需要或者应用前景的需要进行的完善,整个Win ...
- ASP.NET的路由
之前在探讨ASP.NET MVC的路由时,无意发现原本ASP.NET也有路由机制的.在学习MVC的路由时觉得这部分的资料不太多,不怎么充实(也许是我不懂得去看微软的官方文档).后来也尝试一下ASP. ...
- 新学C#线程使用总结
这两天在项目上需要使用多线程技术,研究了半天,碰到了一些问题,现在简要总结下. 线程的使用其实很简单,和JAVA里面差不多,但是还是有很多特别的地方,在C#中的线程,如果要对非线程创建的控件进行操作的 ...
- 剑指offer面试题31连续子数组的最大和
一.题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果 ...
- EffectiveJava——接口优于抽象类
Java程序设计语言提供两种机制,可以用来定义允许多个实现的类型:接口和抽象方法,这两者直接醉为明显的区别在于,抽象类允许某些方法的实现,但接口不允许,一个更为重要的区别在于,为了实现由抽象类定义的类 ...
- CSS选择器特殊性与重要性
特殊性 在编写CSS代码的时候,我们会出现多个样式规则作用于同一个元素的情况,例如 <!-- HTML --> <header> <nav class="nav ...