Algorithm design manual

时间:2012-01-30 18:33:36
【文件属性】:

文件名称:Algorithm design manual

文件大小:4.84MB

文件格式:HLP

更新时间:2012-01-30 18:33:36

Algorithm

Most of the professional programmers that I've encountered are not well prepared to tackle algorithm design problems. This is a pity, because the techniques of algorithm design form one of the core practical technologies of computer science. Designing correct, efficient, and implementable algorithms for real-world problems is a tricky business, because the successful algorithm designer needs access to two distinct bodies of knowledge: u Techniques - Good algorithm designers understand several fundamental algorithm design techniques, including data structures, dynamic programming, depth-first search, backtracking, and heuristics. Perhaps the single most important design technique is modeling, the art of abstracting a messy real-world application into a clean problem suitable for algorithmic attack. u Resources - Good algorithm designers stand on the shoulders of giants. Rather than laboring from scratch to produce a new algorithm for every task, they know how to find out what is known about a particular problem. Rather than reimplementing popular algorithms from scratch, they know where to seek existing implementations to serve as a starting point. They are familiar with a large set of basic algorithmic problems, which provides sufficient source material to model most any application. This book is intended as a manual on algorithm design, providing access to both aspects of combinatorial algorithms technology for computer professionals and students. Thus this book looks considerably different from other books on algorithms. Why? u We reduce the design process to a sequence of questions to ask about the problem at hand. This provides a concrete path to take the nonexpert from an initial problem statement to a reasonable solution. u Since the practical person is usually looking for a program more than an algorithm, we provide pointers to solid implementations whenever they are available. We have collected these implementations on the enclosed CD-ROM and at one central FTP/WWW site for easy retrieval. Further, we provide recommendations to make it easier to identify the correct code for the job. With these implementations available, the critical issue in algorithm design becomes properly modeling your application, more so than becoming intimate with the details of the actual algorithm. This focus permeates the entire book. u Since finding out what is known about a problem can be a difficult task, we provide a catalog of important algorithmic problems as a major component of this book. By browsing through this catalog, the reader can quickly identify what their problem is called, what is known about it, and how they should proceed to solve it. To aid in problem identification, we include a pair of ``before'' and ``after'' pictures for each problem, illustrating the required input and output specifications. u For each problem in the catalog, we provide an honest and convincing motivation, showing how it arises in practice. If we could not find such an application, then the problem doesn't appear in this book. u In practice, algorithm problems do not arise at the beginning of a large project. Rather, they typically arise as subproblems when it suddenly becomes clear that the programmer does not know how to proceed or that the current program is inadequate. To provide a better perspective on how algorithm problems arise in the real world, we include a collection of ``war stories,'' tales from our experience on real problems. The moral of these stories is that algorithm design and analysis is not just theory, but an important tool to be pulled out and used as needed. Equally important is what we do not do in this book. We do not stress the mathematical analysis of algorithms, leaving most of the analysis as informal arguments. You will not find a single theorem anywhere in this book. Further, we do not try to be encyclopedic in our descriptions of algorithms, but only in our pointers to descriptions of algorithms. When more details are needed, the reader should follow the given references or study the cited programs. The goal of this manual is to get you going in the right direction as quickly as possible. But what is a manual without software? This book comes with a substantial electronic supplement, an ISO-9660 compatible, multiplatform CD-ROM, which can be viewed using Netscape, Microsoft Explorer, or any other WWW browser. This CD-ROM contains: u A complete hypertext version of the full printed book. Indeed, the extensive cross-references within the book are best followed using the hypertext version. u The source code and URLs for all cited implementations, mirroring the Stony * Algorithm Repository WWW site. Programs in C, C++, Fortran, and Pascal are included, providing an average of four different implementations for each algorithmic problem. u More than ten hours of audio lectures on the design and analysis of algorithms are provided, all keyed to the on-line lecture notes. Following these lectures provides another approach to learning algorithm design techniques. These notes are linked to an additional twenty hours of audio over the WWW. Listening to all the audio is analogous to taking a one-semester college course on algorithms! This book is divided into two parts, techniques and resources. The former is a general guide to techniques for the design and analysis of computer algorithms. The resources section is intended for browsing and reference, and comprises the catalog of algorithmic resources, implementations, and an extensive bibliography. Altogether, this book covers material sufficient for a standard Introduction to Algorithms course, albeit one stressing design over analysis. We assume the reader has completed the equivalent of a second programming course, typically titled Data Structures or Computer Science II. Textbook-oriented features include: u In addition to standard pen-and-paper exercises, this book includes ``implementation challenges'' suitable for teams or individual students. These projects and the applied focus of the text can be used to provide a new laboratory focus to the traditional algorithms course. More difficult exercises are marked by (*) or (**). u ``Take-home lessons'' at the beginning of each chapter emphasize the concepts to be gained from the chapter. u This book stresses design over analysis. It is suitable for both traditional lecture courses and the new ``active learning'' method, where the professor does not lecture but instead guides student groups to solve real problems. The ``war stories'' provide an appropriate introduction to the active learning method. u A full set of lecture slides for teaching this course is available on the CD-ROM and via the World Wide Web, both keyed to unique on-line audio lectures covering a full-semester algorithm course. Further, a complete set of my videotaped lectures using these slides is available for interested parties. See http://www.cs.sunysb.edu/ algorith for details. Help file produced by WebTwin (www.webtwin.com) HTML->WinHelp converter. This text does not appear in the registered version.


网友评论

  • 不错的资源,不过是英文版的
  • 还蛮不错,英文版的
  • 很不错的书~~
  • 很好的资源谢谢
  • 很经典的书,值得一看,只可惜是英文版,有中文版的就好了
  • 资源很好,英文
  • 还蛮不错,挺有帮助的啊
  • 不错的书,对算法设计很有帮助
  • 资源不错,可惜英文不够好。
  • 内容是好内容,可是在win8下,没打开,一定是我打开的方式不对哈哈
  • It's a nice one. Thanks!
  • 英文版的,得用心读,读算法设计有帮助。
  • good,非常实用!
  • 非常好的学习资源
  • 书还不错啊!
  • 英文版,hlp格式。书分两大块,第一块“技术”介绍各种算法,第二块“资源”给出了大量的参考资源,很有帮助。
  • 非常好的学习资源
  • 算法设计指南 不错的算法书 值得好好看
  • pdf软件无法打开
  • 算法类的经典书籍,英文版的,得用心读,读算法设计有帮助。
  • 非常好的学习资源
  • hlp文件,win7下要装旧版的help文件解析软件
  • 不错,非常好,就是格式有点特别,需要说明下打开方式
  • 好书,就是格式有点儿不太好hlp文件的
  • 挺好的,这是别人好几年的经验,然后推荐我看的,必须看看
  • hlp文件,win7下要装旧版的help文件解析软件
  • 东西还没看,不过manual也算是algorithm里不叫出名的书了
  • 英文版的,至于打开,可以下载后,右键取消限制即可
  • 东东打开不来的