八年程序员之书籍篇--Algorithm(三):算法设计技术

同样是讨论算法,同类1不同的是,此类书籍不追求算法的罗列及其数学论证,而关注于算法之间的共性,什么思路下诞生什么样的算法?或者说是算法之算法,得到算法的算法。^_^

 

此系列有以下几本:

1.《Algorithm Design》-《算法设计》-Jon Kleinberg & Eva Tardos-张立昂等-清华大学出版社。此系列中最厚最全的一本书。除了算法书中都涉及的分析基础、图、分治、贪心、动态规划、NP外,还有一些扩展内容。书偏学院派,每个例子的证明和深入比较多,比较适合喜欢研究的朋友。书中小部分习题带解答,参考书有些奇怪,每章后面列出来都是简称,但是书后并没有详细的信息。总的说来,喜欢全面了解、深入研究比较适用,并不适合于入门。评价:4

2.《Algorithms》-《算法概论》-Sanjoy Dasgupta & Christos Papadimitriou & Umesh Vazirani-王沛等-清华大学出版社。短小精悍的一本书,虽薄内容却不单薄。数算法和量子算法是其特色。相对书1和书2,我更推荐这本书,比较薄嘛!^_^,书中的习题没有答案/提示,靠自己修炼了!评价:4.5

3.《Introduction to the Design and Analysis of algorithms》-《算法设计和分析基础》-Anany Levitin-潘彦-第2版-清华大学出版社。编排完全以算法设计技术来编,一般列为分治法的还分了三章:分治、减治、变治。个人说一句:还是喜欢这种编排方式的,虽然可能你去找某经典算法并不方便。不过,讲设计技术的书并不是想做算法参考手册,对吗?书中的题目有提示,其中有标识的题目比较有趣。评

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
英文版 算法设计 Preface Algorithmic ideas are pervasive, and their reach is apparent in examples both within computer science and beyond. Some of the major shifts in Internet routing standards can be viewed as debates over the deficiencies of one shortest-path algorithm and the relative advantages of another. The basic notions used by biologists to express similarities among genes and genomes have algorithmic definitions. The concerns voiced by economists over the feasibility of combinatorial auctions in practice are rooted partly in the fact that these auctions contain computationally intractable search problems as special cases. And algorithmic notions aren’t just restricted to well-known and longstanding problems; one sees the reflections of these ideas on a regular basis, in novel issues arising across a wide range of areas. The scientist from Yahoo! who told us over lunch one day about their system for serving ads to users was describing a set of issues that, deep down, could be modeled as a network flow problem. So was the former student, now a management consultant working on staffing protocols for large hospitals, whom we happened to meet on a trip to New York City. The point is not simply that algorithms have many applications. The deeper issue is that the subject of algorithms is a powerful lens through which to view the field of computer science in general. Algorithmic problems form the heart of computer science, but they rarely arrive as cleanly packaged, mathematically precise questions. Rather, they tend to come bundled together with lots of messy, application-specific detail, some of it essential, some of it extraneous. As a result, the algorithmic enterprise consists of two fundamental components: the task of getting to the mathematically clean core of a problem, and then the task of identifying the appropriate algorithm design techniques, based on the structure of the problem. These two components interact: the more comfortable one is with the full array of possible design techniques, the more one starts to recognize the clean formulations that lie within messy problems out in the world. At their most effective, then, algorithmic ideas do not just provide solutions to well-posed problems; they form the language that lets you cleanly express the underlying questions. The goal of our book is to convey this approach to algorithms, as a design process that begins with problems arising across the full range of computing applications, builds on an understanding of algorithm design techniques, and results in the development of efficient solutions to these problems. We seek to explore the role of algorithmic ideas in computer science generally, and relate these ideas to the range of precisely formulated problems for which we can design and analyze algorithms. In other words, what are the underlying issues that motivate these problems, and how did we choose these particular ways of formulating them? How did we recognize which design principles were appropriate in different situations? In keeping with this, our goal is to offer advice on how to identify clean algorithmic problem formulations in complex issues from different areas of computing and, from this, how to design efficient algorithms for the resulting problems. Sophisticated algorithms are often best understood by reconstructing the sequence of ideas—including false starts and dead ends—that led from simpler initial approaches to the eventual solution. The result is a style of exposition that does not take the most direct route from problem statement to algorithm, but we feel it better reflects the way that we and our colleagues genuinely think about these questions.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值