Algorithms play the central role in both the science and the practice of computing. Recognition of this fact has led to the appearance of a considerable number of textbooks on the subject. By and large, they follow one of two alternatives in presenting algorithms. One classifies algorithms according to a problem type. Such a book would have separate chapters on algorithms for sorting, searching, graphs, and so on. The advantage of this approach is that it allows an immediate comparison of, say, the efficiency of different algorithms for the same problem. The drawback of this approach is that is emphasizes problems types at the expense of algorithm design techniques.
The Second alternative organizes the presentation around algorithm design techniques. In this organization, algorithms from different areas of computing are grouped together if they have the same design approach. I share the belief of many that this organization is more appropriate for the basic course on design and analysis of algorithms. These are three principal reasons for emphasis on algorithm design techniques. First, these techniques provide a student with tools for designing algorithms for new problems. This makes learning algorithm design technique a very valuable endeavor from the practical standpoint. Second, they seek to classify multitudes of known algorithms according to an underlying design idea. Learning to see such commonality among algorithms from different application areas should be a major goal of computer science education. After all, every science considers classification of its principal subject as a major if not the central point of its discipline. Third, in my opinion, algorithm design techniques have considerable utility as general problem-solving strategies, applicable to problems beyond computing.
算法在计算科学理论和实践上占有中心地位,大量的算法书籍也因此而产生。大体上,这些书籍有两种不同的结构。第一种根据问题的类型来将算法分类,这类书籍将算法分为排序,查找,图算法等章节来讲述。这种分类的好处是可以直接地比较不同算法在相同问题上的性能。但是,这种组织方式带来的不足之处是强调了问题的类型而忽视了算法的设计技术。
第二种方式是根据算法设计技术来组织内容。在这种结构下,拥有相同设计方式,应用在不同领域的算法被聚合在一起。同很多人一样,我认为这种方式更适合作为算法设计和分析的初级课程。需要强调算法设计技术,主要有三个原因:一,这些技术给学生们提供了设计算法处理新问题的工具。在实用的角度上,这使得学习算法设计技术很有价值。二、通过相同的设计想法,学生们对已经学到的算法进行分类,计算机教育领域的主要目标应是从不同的应用领域学习到算法间的相通性。
一点点 Preface
《算法设计与分析基础》热门书评
-
实用主义算法教材典型
14有用 0无用 Ziggy 2012-12-22
在我们学校,一年一开的算法课由数学系与计算机系的教授轮流教学,教材便是Levitin的这本算法设计与分析基础(当然是英文版)。在学期末的时候,教授会被要求对课程设计本身提出些建议。数学系教授的建议非常明确:请换一本教材!是的,对于做理论出身研究方向为Operations Research的数学系教授...
-
短小精干
5有用 0无用 Linn 2007-02-09
如果说CLR是牛津高阶,那这本书就是麦克米伦。作为一本introduction的书籍,更注重的是概念的讲解分析,应用方法。没有具体的算法证明,毕竟CLR有1000多页。这本书的分类也很有特点,算法的分类不再是传统的——数据结构,搜索,排序;而是根据算法的特点分类——divide and conque...
-
简单但是实用
4有用 0无用 句号 2009-12-11
一直在看,很有特色,被很多大学选作本科教材。是一本可以让你不断可以回去看又不觉得很深奥。习题不难但是非常有趣,很多面试题就是从中变种而来。归类是最大特色,首先把当前的算法难题classify as sorting,seaching, string processing, graph problems...
-
很好很好
3有用 0无用 第一剑豪 2013-09-11
为什么评分只有8.3呢?从实用性的角度看,这本书比算法导论好啊!后者就是个百科全书,能给你一切你想知道的相关内容,前提是你愿意沉浸其中,努力学习。前者能帮你迅速入门,提高兴趣,打下基础,尤其是非计算机专业的学生,更多是追求实用,会用,如何用,繁杂的数学推导其实并不怎么关心或者以后有空关心,从这一点来...
-
好书
3有用 0无用 小东 2009-03-12
这本是我们这学期的教材。很不错。对算法做了一个很新颖的划分,可以看到它和我们经常看的算法书的知识点划分很不一样。作者得归类很不错。对一些常用思想做了分类。比如作者对分治做了几个分类。纯思维层面的切入分析,而不像以前的分为一般算法和图论那样子。书中有不错的习题。思想描述有一定的思维引导性质。...
书名: 算法设计与分析基础
作者: Anany Levitin
出版社: 清华大学出版社
原作名: Introduction to the Design and Analysis of Algorithms
译者: 潘彦
出版年: 2007-1-1
页数: 409
定价: 49.00元
装帧: 胶版纸
丛书: 国外经典教材·计算机科学与技术
ISBN: 9787302142836