【www.cubkforchild.com--算法分析】
《数据结构与算法分析》是一本由维斯著作,机械工业出版社出版的平装图书,本书定价:35.00元,页数:391,文章吧小编精心整理的一些读者的读后感,希望对大家能有帮助。
《数据结构与算法分析》读后感(一):求甚解的读者看这本会累死
8.28-------
其实CLRS的书在论证方面也不能算太好,例如霍夫曼编码,缺点说明见此文:http://mindhacks.cn/2011/07/10/the-importance-of-knowing-why-part3/
但是,仍旧比Weiss的走脑。现在觉得,如果是以求甚解的心态去学算法,书本真的不能选薄的。。。因为这种书只能用来当知识索引工具。
8.13-------
薄薄的一本书有这样的广度和深度确实难得。但讲得太跳跃,而且命题证明过程的表达水准一泡污。一豆友说“让行文尽可能晦涩难懂这个目标的达成上翻译同学又立了大功”--这条不作定论。其实,如果这本书的作者能好好说话,那书里的结论都是很好理解的。读者如果求甚解,还是看算法导论去吧。
《数据结构与算法分析》读后感(二):兼顾入门,广度和深度
这种程度的书确实很少能见到了。
它不在简单的地方无谓的浪费笔墨,恰到好处的把初学者带入算法和数据结构的世界。
它基本上涉及了数据结构基础的“方方面面”。很难想象这书的厚度,居然能讲这么多内容(你看看算法导论有多厚就知道我在说什么了)。
它在内容上并不乏深度。高级数据结构部分并不容易,如果你第一次就全部耐心看完,我也不得不怀疑那是不是真的。因为那些数据结构的额繁琐程度非同一般,如果你能随手码出其中的大半,就足以说明你的代码能力已经差不多出神入化了。
最重要的是,你真的就感觉作者在你眼前给你说教一般,个人觉得,这本书真的算是一本有灵魂的书吧。甚至同一个问题在书中的不同位置出现,不断的被优化。
此书很多高级部分,真的不得不佩服作者的编排,层层深入,尤其是二叉堆,斜堆,二项堆,Fibonacci堆那段。然后伸展树和Fibonacci堆又给联系起来了。均摊复杂度分析。。。。做到这种程度上,也就不难理解,为什么这个厚度的书,可以把这么多东西都讲这么详细~
~~~~~
这本书主要还是讲数据结构的,算法方面除非和所介绍的数据结构有很强的关系,否则一般都只是简单的介绍一下而已。这本书的算法部分确实只能说是入门,仅仅只看这本书,算法部分应该是不够的(尤其是图论,动态规划部分,篇幅太短)。
《数据结构与算法分析》读后感(三):翻译很坑爹(6级过了否?)
自从下了英文原版电子书对着看,翻译真是一次有一次引起我的愤怒!
比如
“dramatic effect” 翻译成“戏剧性的效果”
“General idea”翻译成 “一般想法”
今天看完第五章,会看第一章第一页倒数第三段说的那个字谜问题,“The input consists of a two-dimensional array of letters and a list of words. ” 本意是说输入1.包括一个由字符构成的二维数组,2.包括一系列单词(下文称 word list)! 解谜的时候是要看二维数组各个方向字母组成的单词在不在你输入的word list 中。而它翻译的“输入是由一些字母和单词的二维数组组成”,完全导致我当初就没看懂,还以为输入的二维数组既可以是字符也可以是单词!正好书上图片只显示了二维字符表,就以为“单词表”是整个词典!!
翻译是在,太坑了,书难度高,完全和翻译脱不了关系!!!
建议:下载英文版电子书对着看
《数据结构与算法分析》读后感(四):翻譯錯誤?原書錯誤???
我看的是中文版的,hash table那一章,第114頁。我就直奔主題了啊。
中文版里是這樣說的:
我們程序的一個低效之處在於第12行上的malloc執行了H->TableSize次。這可以通過循環出現之前調用一次malloc操作。
H->TheLists = malloc(H->TableSize * sizeof(struct ListNode));
注意了,這裡的類型定義是這樣的:
truct ListNode;
typedef ListNode *List;
List * TheLists;
也就是說TheLists是指向List的指針,也就是List的數組;它在之前被賦值過一次:
H->TheLists = malloc(sizeof(List) * H->TableSize);
可以很明顯地看出來,這兩次malloc的大小、指針類型都不同,所以我認為中文版114頁的這句話是錯的。
同時我寫了段代碼測試了一下,果然按照它這樣的說法會有運行時錯誤。然後我按照我的想法修改了一下就通過了:
ListNode *tmp;
tmp = malloc(H->TableSize * sizeof(struct ListNode));
H->TheLists[0] = tmp;
H->TheLists[1] = tmp + 1;
這樣就沒問題。
也就是說,H->TheLists必須進行一次提領才能賦值給它ListNode類型的地址。
請大家幫忙確認一下,謝謝。
《数据结构与算法分析》读后感(五):没有传说中说的那么神乎奇乎
当初在豆瓣上看到这本书的评价,写得神乎奇乎,结果就买了,买了,真的就买了!
后来花了近2个月的时间才把这本书看完(只看了80%,后面的摊还分析和高级数据结构跳过),坦白说,这本书真的不适合零基础进行学习,一开始就通过连续子序列和的例子引入,外加分治法求快速幂,我勒个去,一上来就搞递归分治,动态规划,真不知道我当时是怎么看过来的。。。
表,栈和队列写的中规中矩,跟普通的数据结构书籍没多大差异,不过树这个章节我看完真心觉得很爽!!!这里面关于树的算法描述,把我对递归算法的理解提升了一个档次!(阅读之前对递归的理解仅仅停留在用递归求和而已),后来自学红黑树,字典树,线段树等树数据结构变得更加容易。这本书的优点就在于代码清晰,很容易阅读,适合数据结构的第二本学习资料。
这本书读完,让我对散列,二叉堆,排序(特别是快排),图论算法又有了进一步的理解。
《数据结构与算法分析》读后感(六):评论数据结构与算法分析:C语言描述(原书第2版)
现在的程序员总是用着别人封装好的函数、类、库、API,满满的,我们就会觉得编程不过是这么回事,搭积木而已,别人都把材料提供好了,至于材料是怎么做的,不用理会。
真的是这样吗?说数据结构和算法没用的人,那是因为他用不到。为什么用不到?他的层次决定了他不会接触到编程最关键最核心的部分——算法。
先不说那些反应算法的力量的似乎变态的问题,也不说2006年第4期《程序员》的专题,只说,当我们遇到一个问题时,如何搭建数学模型?当我们在有限的硬件条件下要完成高速的数据处理,如何设计?当我们为客户开发完一套软件后,能不能保证未来几年内数据猛增不会带来计算量的指数级增长?当我们需要升级服务器内存和硬盘是,能不能修改几个函数就避免硬件的投资?
这些问题的答案,请在这本书中寻找。
表、栈、队列、树、图等基本数据结构作者并未花大力气描述,而是重在后面的对这些数据结构的应用上,每一个结论都给出了详尽的数学证明,阅读过程中,我们可以感受到蕴含在其中的匠心独运的逻辑思维之美。借用GOOGLE黑板报的一个专题,算法体现了——“数学之美”。
并不是说本书就很完美了,有些章节讲得太过笼统,读起来跳跃感太强,比如第九章的网络流问题,介绍的太过简单,推导过程中省略了不少步骤,对增广路径算法讲的太粗,至于预流推进算法(Push-Relabel)则根本未提,不能不说是一个小小缺憾。
《数据结构与算法分析》读后感(七):叹为观止的算法基础经典
开篇第一章引论的第一节提出一个问题:
“设有一组N个数而要确定其中第K个最大者”
并给出两种解法
全排序后返回K位置上的元素。平均复杂度O(NLogN)
再建立一个临时数组,从N中读取K个数,全排序,然后依次读入其余N - K个数进来和第K名比较,大于K的值则插入到合适位置,只待循环完毕返回K位置元素。平均复杂度O(KLogK + (N - K))
这两种方法在N=100万,K=50万时速度都尤其“漫长“,往往让人抓耳挠腮,作者讲叙到还有一种算法1秒钟就可以得出答案。该算法原理和快速排序一致,但只有一个方向的递归。平均复杂度O(N)。
先选取一个中值元素(该中值是否合理将影响到算法效率),然后将大于等于该数的元素放到其左侧,小于该数的放到右侧,如7 4 6 8 0 -1 选取6作为中值元素,则结果应该为4 0 -1 6 8 7,接下来比较K值和现在的中值元素6所在索引(3),如何小于3,则只需在索引0~2间再进行递归操作继续选取第K名,大于3则在4~5中递归选取第K - 3名即可。还有一关键是该为递归中的数组长度选取一临界点,小于该临界则进行选择排序,插入排序即可,比如20以内。
算法真是精妙,赶紧学习。
《数据结构与算法分析》读后感(八):大数据就是这么任性第一季数据结构和算法
大数据就是这么任性第一季数据结构和算法
百度网盘地址:http://pan.baidu.com/s/1o7TIOwq 密码: xm6a
涉及内容;数据结构、算法、链表、队列、二叉搜索树、DAG、B+树、LSM树、堆排序、跳表、排序、哈希表、搜索引擎索引、数据库索引、文件索引、倒排索引、位图法、三路快速排序、多路归并排序、外部排序、连通图、平衡树
这门课程是针对大数据工程师和云计算工程师的基础课程,同时也是所有计算机专业人士必须掌握的一门课程。如果不掌握数据结构和算法,你将难以掌握高效、专业的数据处理手段,更难以从容应对复杂的大数据处理场景。
课程主要内容:
1.数据结构和算法概述
2.数组、链表、队列、栈等线性表
3.二叉树、BST、AVL树及二叉树的递归与非递归遍历
4.B+树
5.跳表
6.图、图的存储、图的遍历
7.有向图、无向图、懒惰与积极的普利姆算法、克鲁斯卡尔算法及MST、单源最短路径问题及Dijkstra算法
8.并查集与索引式优先队列、二叉堆
9.遗传算法初步与TSP问题
10.内部排序(直接插入、选择、希尔、堆排序、快排、归并等)算法与实践中的优化
11.外部排序与优化(文件编码、数据编码、I/O方式与JVM特点、多线程、多路归并等)
12.哈希表、Trie树、倒排索引、分布式索引初步(Map-Reduce)
一、简介
第1讲:什么是数据结构?
第2讲:什么是算法?
二、线性表
第3讲:线性表(数组、链表、队列、栈)
第4讲:Linux work queue及JDK线程池
三、树
第5讲:非线性结构、树、二叉树
第6讲:平衡树、AVL树
第7讲:B+树与数据库索引
四、图
第8讲:图的概念与存储
第9讲:图的遍历
第10讲:最小生成树(MST)、Prim算法、Kruskal算法
第11讲:单源最短路径与Dijkstra算法
第12讲:用遗传算法近似求解TSP问题
五:排序
第13讲:选择排序、插入排序、希尔排序
第14讲:堆排序、优先队列
第15讲:快速排序及优化
第16讲:归并排序及优化
第17讲:归并排序与外部排序
第18讲:外部排序的优化及延伸
六:查找
第19讲:哈希表、二分查找、Trie树、Ternery树、搜索引擎与倒排索引、集中式索引与分布式索引、Map-Reduce初步
《数据结构与算法分析》读后感(九):很实用的算法书籍
这本书买了很多年,搬了这么多次工位,一直在办公室常备的书(虽然已经很少翻看).
里面使用的代码,不是所谓的伪代码,而是正经可以运行的C代码,所以新人如果能照着做一遍下来,收获应该不小.
我的一个朋友,很多年前也是读这本书写了一些笔记:
http://www.luocong.com/dsaanotes/
另外,选题也比较适中.不偏不倚,都是一些比较常用的数据结构/算法.
还需提一点的是,侯捷在写<<STL源码剖析>>一书时参考的数据结构书就是这本书.
翻译质量不差,基本看起来没有带来阻碍.
我对数据结构算法基本上也是持的和本书差不多的观点:常用的,基本的数据结构,算法能清楚原理,无阻碍的正确写出来即可.深究下去是个无底洞,而且各领域有各自特定的算法,真等研究某一个方向时再细致研究下去就行.
《数据结构与算法分析》读后感(十):翻译翻译!!!
没有人吐槽一下翻译吗?翻译的看不下去了。
举个例子,p84最下面一段“我们继续在前面例子的基础上以倒序插入关键字10到16,接着插入8......”,但图(p85图4-36下面的那幅)里面当前的顺序是插入16和15.根本没有10. 后来对照英文版发现,翻译的文字和图都对不上,英文版是插入15,14......。.我死活想不明白为什么会出现个“倒序”这个词。
《c语言参考手册》的翻译版也给那么高的分,我都怀疑打分的人你们看过书了吗?
接触了这么多翻译的书唯独带着“娱乐”精神来翻译的《unix编程艺术》翻译的较为不错,其它的没有一本可以少吐槽的。唉,还是直接上英文版吧。
扩展阅读文章
推荐阅读文章
推荐内容
时光文档网 www.cubkforchild.com
Copyright © 2002-2018 . 时光文档网 版权所有 京ICP备10015900号