《Java数据结构和算法》是一本由拉佛著作,中国电力出版社出版的平装图书,本书定价:55.00元,页数:560,特精心从网络上整理的一些读者的读后感,希望对大家能有帮助。
《Java数据结构和算法》精选点评:
●看pdf电子版
●适合初学者 , 算法讲的很清楚 ,而且有applet配套教学,不错
●简单易懂
●解释相当清楚,习题难易适度,每个程序员都应该细致的读完一本数据结构书,这本书绝对就是那本。
●看了一遍,很不错。语言讲得很清晰,算法都有完整可运行的代码,并且还有applet演示。这是一本学习数据结构不错的书。当然与java语言无关的数据结构没讲,例如字符串String,在jiava中它已经是个类了。
●很久之前看过的一本书,现在想想似乎什么都没记住
●applet很好,对算法有了详细的解释,但是深度不够,内容较窄。
●我的数据结构与算法入门书啊~~很入门的那种书,没有太多公式,主要是插图和讲概念,讲的很容易理解,虽然没有找到书里的那些applet,但是当初作为第一本数据结构和算法的书还是很顺畅的看下来了~~
● 绝版书,不过应该是有再版价值的。 其实没看完,暂时用不上这本书了,就虚假的标记为已读吧。
●使用了Applet,你可以可视化的看到数据的状态。适合初学者、提高、精通。非常经典的教材。
《Java数据结构和算法》读后感(一):细致入微 入门必读
数据结构的书也翻阅了不少,这本书可以说是最详细的。在我看来一本好的技术书就是废话多,只有高信息量的冗余才能让读者更清晰的理解,像清华那本广受推崇的数据结构书,薄薄一本,满是精华,但是对初学者来说实在是艰涩难懂。这本书一个是代码结构清晰,注释丰富,并且配合了小程序给读者对算法的直观感受,非常适合初学者学习。
《Java数据结构和算法》读后感(二):有好有坏
优点是这本书讲的很清晰易懂,分析的很透彻,对于初学数据结构和算法是很好的推荐
缺点是中文版翻译的实在是太差了,有的地方不对照英文版根本不知道在说什么,遇到很多处这样的情况了真是不能忍。感觉书中的例子代码写的也不够好,不如文字解释的那么清楚。
之所以没有放弃这本书看别的是因为它的文字叙述写的真的很好,麻烦点对照英文版看就行了
《Java数据结构和算法》读后感(三):小错误集锦
书中141页错误,单链表displayList,里面的while判断为空应该在外面判断,否则会报空指针异常,因为在while条件中已经使用到需要判空的变量了。后续添加的find和delete同理。
书中243页,希尔排序,theArray[inner-h]>=temp,应改为theArray[inner-h]>temp,因为如果相等,进行交换是无意义的,是一种浪费行为,这在数据量很大的时候会变得明显,插入排序那同理,70页,a[in-1]>=temp,应改为a[in-1]>temp。
书中262页错误,意味着即时取消leftPtr>right和rightPtr<left的检测,这句中的大于小于符号写反了。
书中341页错误,应该是,已知X是红色的,由此可以得出一个结论,X不可能有一个兄弟节点,除非P是“黑色”的。
《Java数据结构和算法》读后感(四):书中给出的希尔排序代码有错误
我之前第一次看这本书的时候,是只看了他的一些概念,理解了之后就上手写代码了,他给的实例代码只是草草的看了看。
今天复习的时候,就仔细看了看里面的代码,然后发现希尔排序的代码有错误,而且也和他描述的概念不符。
希尔排序应该需要嵌套的四层循环,第一层递减增量,第二层偏移增量,剩下两层都是正常的插入排序,而他给出的代码漏掉了第二层
我给出我的代码,大家可以比较一下,按书里的代码虽然可以进行排序,因为本来就是优化过的插入排序,但是效率就会有所下降。
rivate static ArrayList<Integer> sort4(ArrayList<Integer> list) {
//根据数组size获取初始增量
int Incremental=1;
while(3*Incremental+1<list.size())
{
Incremental=3*Incremental+1;
}
while(Incremental>=1)
{
//执行带有增量的插入排序(这里的插入排序一定要从右往左来查找合适的位置)
//当前需要进行几次这样的增量插入排序
//!!!书中的代码漏掉了这一层的for
for(int i=0;i<Incremental;i++)
{
for(int out=Incremental+i;out<list.size();out+=Incremental)
{
int index=out;
int cache=list.get(out);
//为该值寻找合适的位置
for(int in=out-Incremental;in>=0;in-=Incremental)
{
//小的都往右移动
if(cache<list.get(in))
{
list.set(in+Incremental, list.get(in));
index-=Incremental;
}
}
//插入到最终的位置
list.set(index, cache);
}
}
//减少增量
Incremental=(Incremental-1)/3;
}
return list;
}
没有写泛型,只是一个练习,不过我这个应该就是正确的代码,书中少的部分已经在代码里圈出来了。
大家可以看看我说的对不对。
对了我看的是第二版,不知道第一版是不是这样
看了下评论貌似其他的代码也有一些错误,还好我当初学的时候就没怎么看代码都是自己写的,哈哈。
到时候如果再找到别的错误还会一并贴出来