看这种书有七窍出血的感觉。一个稀疏矩阵乘法她用3面纸来描述,关键是还描述不清。
不知道严魏敏为什么选择C语言来实现。
她对C语言根本不通。C作为典型的函数式语言,函数概念的提出本身就是为了逻辑层次分明,这是描述算法的优势。可本书实现某个算法时,基本都是一个函数裸奔下来,没有一点调用。像比这段串模式匹配函数:
int Index(SString S, SString T,int pos){
i =pos; j=1;
while(i<S=[o] && j<= T[0]){
if(S[i] == T[j]) { ++i; ++j;}
else { i= i-j+2; j=1}
}
if(j > T[0]) return i -T[0];
else return 0;
}
谁能一眼看出来算法逻辑?就不能多封装一层函数么?这样写主逻辑:
int index(SString S, SString T,int pos){
for(int i=pos; i<strlen(S); i++)
if(strmatch(S+i,T)) return i;
return 0;
}
这样诚然有调用函数的开销,但你是在讲算法吧?况且这函数调用的开销可以通过inline补偿。
既然严老师是想演示给我们最有效率的代码,为何又在书中频繁把结构体当参数塞进堆栈。
若传递结构体参数是为了可读性,那为什么又频繁的检查malloc的返回值?
再看C代码的注释,下面取自稀疏矩阵乘法:
...
for( arow =1; arow <= M.mu; ++arow) //处理M的每一行
ctemp[ = 0; //当前各行元素累加器清零
Q.rpos[arrow] = Q.tu +1;
...
且不说这两句注释有多鸡肋,正常人想要的肯定是第三句的注释呀。
本来还想再扒扒的,再亚马逊看到一书评豁然开朗,觉得写这么多实在不值:
-------------------------------------------------------
版本:平装
所谓严蔚敏《数据结构(C语言版)》实乃一大丑闻:清华曾使用1976年初版的Horowiz《数据结构基础(C语言版)》作为教材,后来严蔚敏抄袭了该书(对照一下两本书就一目了然),却又为了遮丑而删掉了原书的精华——数据结构的公理化描述部分。
滑稽的是:这本抄袭自名家的伪作居然在国内两次获奖。但抄的就是抄的,加上“严大师”不会编程,当面对学生在网上的提问时,“严大师”作出的答复可谓令人啼笑皆非:
* 不是太清楚该书中的例子能否全部用C语言实现,最好问一问教C的老师(应该说“最好去问问原作者Horowiz”);
* 只编过递归的,没编过非递归的(应该说“我抄的那本书上只有递归的,没有非递归的啊”)。
------------------------------------------------------
且不論书评是否片面性,既然她不会编程,我们也就不说什么了。
反正我现在是摆正了心态,学一个算法前,先冥想出这个算法(或者上网查),再去推测书上作者是不是也是这意思。
权当是一本中国小学生写的英语日记,你必须预先知道她想说什么,才能看得懂她写的话。
建议当作中国小学生的英语日记来读
《数据结构》热门书评
-
由书看教育
51有用 18无用 飞林沙 2009-07-24
谈得大一些,从这本书来看中国的教育。我不知道为什么那么多的学校都选择这本书来作为数据结构的教材,也许他们大多数没明白数据结构究竟学的是什么?这本书为什么学生爱看?因为他简单,他把复杂的东西给省略,把简单的东西更加简单化。但是我不赞同用C语言再来学数据结构,学习数据结构是学习他的思维方式,而不是他的实...
-
看了这本书你就知道为什么大学生出来什么都不会?
38有用 7无用 豆芽 2011-09-15
正如大家所知,这本书也是我大学时代的教程。毕业后这本教程丢了,由于没有学好(当时在卓越网上很多人说这本是经典,所以觉得肯能是自己没用心看),后来又买来一本,不记得看了多少了。现在过了四五年了,又翻开这本书,突然感触很深啊 ,为什么当时一直学不会? 再翻开这本书时候,发现这里面几乎没有实际应用,里面的...
-
有那么好么?
12有用 0无用 逆铭睡眼惺忪地 2009-06-12
这本书将C语言本身的复杂度大量暴露在读者面前,代码中不断纠结于错误处理、动态内存分配、输入输出等等实际和数据结构本身思想不相干的内容,对于初学者而言恐怕会相当困扰。我觉得数据结构书,或者像clrs一样用纯伪码,或者用python这样语法简单的动态语言,这样才不至于身陷语言层面的复杂性导致只见树木不见...
-
- -想秃顶的就看吧。
9有用 1无用 [已注销] 2011-05-16
丫的,一个例子不多看几遍是体会不到它的作用的,看完书不做几个习题是不会理解它的精髓的。读理科的银儿伤的起。哪些混蛋这么为难自己设计出这些算法的啊。混蛋啊,为难了自己何必也为难了别人啊。 好吧,本来只想写上面...
-
千万别把这本书当做入门书籍
5有用 3无用 S.Knight 2012-04-20
也许很多人都会喷我,说我浮躁什么的,但是我觉得这本书真的不好,也许用来做学术研究可以,但是如果你之前又没怎么了解过算法,对数据结构也不熟悉的话,个人建议:千万别把这本书当做入门书籍。因为这本书太枯燥了,枯燥得就像你在看严蔚敏教授的视频,看一个老太太跟你讲课,严教授的学术成就我不否认,但是毕竟我们大部...
书名: 数据结构
作者: 严蔚敏 | 吴伟民
出版社: 清华大学出版社
出版年: 2007-3-1
页数: 334
定价: 30.0
装帧: 平装
丛书: 清华大学计算机系列教材
ISBN: 9787302147510