A. 用C语言描述的伪代码怎么看,怎么写
伪代码主要是为了方便各种语言来实现,像你这里的用C实现就是:
structNode{
intnumber;
structNode*Next;
};
ElementType :元素类型
Element:元素名
Position :位置,定义Next指针
QQ已私信给你~
B. 问下,算法导论是看英文版还是中文版的好如果英文版的话哪里能买到,亚马逊和京东似乎都没有
建议读中文的。
分析:
1.《算法导论》是一本可谓“面面俱到”的书,其中对算法的证明占了很大的比重,这在一般的算法书中并不多见,也是它严谨性的体现。中英文在理解上的区别也就在于如何引出这个算法、算法为什么正确上。但是这些证明虽然有重要意义,但是在实用价值上一般比不上算法本身。我自己在学习算法的时候都是先了解算法思想,再了解算法执行过程,再记住代码,然后做题,最后再来回顾导引和证明,即先知其然,再知其所以然。不能光知其然,那样无法掌握思想,思想才是精髓;而一上来就直奔证明,又缺乏学习效率。(也可能这只是我个人的特点)就算法执行过程本身,中英文都一样,而且由于伪代码本身并无区别,所以先读中文,以掌握算法。
2.当参加国际比赛的时候,题目都是用英文描述;当对算法的研究再上一个层次的时候,国内的译材已经不能够满足学习需要了。要想进步,达到高层次的领域,实现“出色”和“领先”,就一定要大量研读外国文献。这要求英语必须要好。
综上,我的建议是:读中文版《算法导论》,掌握算法,再看解释,理解它,才能更好地运用。学好英语,为达到更高的层次做准备。《算法导论》内容非常丰富,应该读好几遍,到时候再看英文的也不迟。
C. 《算法导论》这本书是用什么语言写的
用伪代码(Pseudocode)写的。伪代码(Pseudocode)是一种算法描述语言,本身不能被解释或者编译。使用伪代码的目的是为了使被描述的算法可以容易地以任何一种编程语言(Pascal,C,Java,etc)实现。
D. 为什么《算法导论》中的数组序号是从1开始的
c语言下标从零开始是个错误,并且 index 也是一个有误导性的名词,它表示的是偏移量,明明应该用 offset。
然后 c 的徒子徒孙都学了它,导致现在很多人都误以为下标应该从 0 开始。
早期蛮荒时代,很多东西都不科学,算法导论作者致力于与落后文明作斗争,然而却遭到了楼主你的不理解,实乃编程届一大憾事。
我再说一遍,C 是结构化的汇编,下标基 0 是受到了 PDP-11 指令集的影响,更老的语言(比如 Fortran)都是基 1 的。
另外用 0/非 0 代表 false/true 也是 PDP-11 中 TST 指令和 Z 位的行为。
可能是这本书强调算法的求学思想,所以从一更加符合数学的数组规定。
但是编程的时候,指针这个东西会经常用到,如果用a(o)作为第一个元素 那么*a+n就等同于a(n) 比较方便
算法导论上的这个问题呢,我觉得我比较同意楼上的看法,这个书上面的很多的程序并不是可以敲上去直接运行的,他只是伪代码,思想而已,给人看的,人类的普遍思维是从1开始,那么书页就是从1开始了
说编程语言是给机器看而伪代码是给人看的简直是逗大家笑吧...编程语言设计出来就是给人看的....
另外从0开始在很多方便都极好....我觉得写多代码都能体会到吧..
帮算导洗地:
算法导论通篇用的是伪代码 是给人类阅读理解的 不是设计给机器去运行的
而绝大多数情况下, index 从 1 开始更符合人类直觉(如果你对这点有异议请参考的答案 )
但少数情况下, index 从 0 开始更符合人类直觉。例如书中 hashing 还有 FFT 那块内容, index 是从 0 开始的。
其实写几天 Pascal 你就适应啦。。