1. Trang chủ
  2. » Giáo án - Bài giảng

the algorithm design manual skiena 1997 Cấu trúc dữ liệu và giải thuật

1,8K 274 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 1.766
Dung lượng 13,72 MB

Nội dung

The Algorithm Design Manual Next: Preface Up: Main Page The Algorithm Design Manual Steven S Skiena Department of Computer Science State University of New York Stony Brook, NY 11794-4400 algorith@cs.sunysb.edu Copyright © 1997 by Springer-Verlag, New York ● ● ● ● ● ● Contents Techniques ❍ Introduction to Algorithms ❍ Data Structures and Sorting ❍ Breaking Problems Down ❍ Graph Algorithms ❍ Combinatorial Search and Heuristic Methods ❍ Intractable Problems and Approximations ❍ How to Design Algorithms Resources ❍ A Catalog of Algorithmic Problems ❍ Algorithmic Resources References Index About this document file:///E|/BOOK/BOOK/BOOK.HTM (1 of 2) [19/1/2003 1:27:29] CuuDuongThanCong.com The Algorithm Design Manual Algorithms Mon Jun 23:33:50 EDT 1997 file:///E|/BOOK/BOOK/BOOK.HTM (2 of 2) [19/1/2003 1:27:30] CuuDuongThanCong.com Preface Next: Acknowledgments Up: The Algorithm Design Manual Previous: The Algorithm Design Manual Preface 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 realworld problems is a tricky business, because the successful algorithm designer needs access to two distinct bodies of knowledge: ● ● 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 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? ● ● ● 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 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 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 file:///E|/BOOK/BOOK/NODE1.HTM (1 of 3) [19/1/2003 1:27:32] CuuDuongThanCong.com Preface ● ● 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 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 In practice, algorithm problems 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 not in this book We 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 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: ● ● ● A complete hypertext version of the full printed book Indeed, the extensive cross-references within the book are best followed using the hypertext version The source code and URLs for all cited implementations, mirroring the Stony Brook Algorithm Repository WWW site Programs in C, C++, Fortran, and Pascal are included, providing an average of four different implementations for each algorithmic problem 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 file:///E|/BOOK/BOOK/NODE1.HTM (2 of 3) [19/1/2003 1:27:32] CuuDuongThanCong.com Preface 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: ● ● ● ● 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 (**) ``Take-home lessons'' at the beginning of each chapter emphasize the concepts to be gained from the chapter 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 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 Next: Acknowledgments Up: The Algorithm Design Manual Previous: The Algorithm Design Manual Algorithms Mon Jun 23:33:50 EDT 1997 file:///E|/BOOK/BOOK/NODE1.HTM (3 of 3) [19/1/2003 1:27:32] CuuDuongThanCong.com Acknowledgments Next: Caveat Up: The Algorithm Design Manual Previous: Preface Acknowledgments I would like to thank several people for their concrete contributions to this project Ricky Bradley built up the substantial infrastructure required for both the WWW site and CD-ROM in a logical and extensible manner Zhong Li did a spectacular job drawing most of the catalog figures using xfig and entering the lecture notes that served as the foundation of Part I of this book Frank Ruscica, Kenneth McNicholas and Dario Vlah all came up big in the pinch, redoing all the audio and helping as the completion deadline approached Filip Bujanic, David Ecker, David Gerstl, Jim Klosowski, Ted Lin, Kostis Sagonas, Kirsten Starcher, Brian Tria, and Lei Zhao all made contributions at various stages of the project Richard Crandall, Ron Danielson, Takis Metaxas, Dave Miller, Giri Narasimhan, and Joe Zachary all reviewed preliminary versions of the manuscript and/or CD-ROM; their thoughtful feedback helped to shape what you see here Thanks also to Allan Wylde, the editor of my previous book as well as this one, and Keisha Sherbecoe and Robert Wexler of Springer-Verlag I learned much of what I know about algorithms along with my graduate students Yaw-Ling Lin, Sundaram Gopalakrishnan, Ting Chen, Francine Evans, Harald Rau, Ricky Bradley, and Dimitris Margaritis They are the real heroes of many of the war stories related within Much of the rest I have learned with my Stony Brook friends and colleagues Estie Arkin and Joe Mitchell, who have always been a pleasure to work and be with Finally, I'd like to send personal thanks to several people Mom, Dad, Len, and Rob all provided moral support Michael Brochstein took charge of organizing my social life, thus freeing time for me to actually write the book Through his good offices I met Renee Her love and patience since then have made it all worthwhile Next: Caveat Up: The Algorithm Design Manual Previous: Preface Algorithms file:///E|/BOOK/BOOK/NODE2.HTM (1 of 2) [19/1/2003 1:27:33] CuuDuongThanCong.com Acknowledgments Mon Jun 23:33:50 EDT 1997 file:///E|/BOOK/BOOK/NODE2.HTM (2 of 2) [19/1/2003 1:27:33] CuuDuongThanCong.com Caveat Next: Contents Up: The Algorithm Design Manual Previous: Acknowledgments Caveat It is traditional for the author to magnanimously accept the blame for whatever deficiencies remain I don't Any errors, deficiencies, or problems in this book are somebody else's fault, but I would appreciate knowing about them so as to determine who is to blame Steven S Skiena Department of Computer Science State University of New York Stony Brook, NY 11794-4400 http://www.cs.sunysb.edu/ skiena May 1997 Algorithms Mon Jun 23:33:50 EDT 1997 file:///E|/BOOK/BOOK/NODE3.HTM [19/1/2003 1:27:33] CuuDuongThanCong.com Contents Next: Techniques Up: The Algorithm Design Manual Previous: Caveat Contents ● Techniques ❍ Introduction to Algorithms ■ Correctness and Efficiency ■ Correctness ■ Efficiency ■ Expressing Algorithms ■ Keeping Score ■ The RAM Model of Computation ■ Best, Worst, and Average-Case Complexity ■ The Big Oh Notation ■ Growth Rates ■ Logarithms ■ Modeling the Problem ■ About the War Stories ■ War Story: Psychic Modeling ■ Exercises ❍ Data Structures and Sorting ■ Fundamental Data Types ■ Containers ■ Dictionaries ■ Binary Search Trees ■ Priority Queues ■ Specialized Data Structures ■ Sorting ■ Applications of Sorting ■ Approaches to Sorting ■ Data Structures ■ Incremental Insertion ■ Divide and Conquer ■ Randomization ■ Bucketing Techniques ■ War Story: Stripping Triangulations file:///E|/BOOK/BOOK/NODE4.HTM (1 of 7) [19/1/2003 1:27:35] CuuDuongThanCong.com Contents War Story: Mystery of the Pyramids ■ War Story: String 'em Up ■ Exercises Breaking Problems Down ■ Dynamic Programming ■ Fibonacci numbers ■ The Partition Problem ■ Approximate String Matching ■ Longest Increasing Sequence ■ Minimum Weight Triangulation ■ Limitations of Dynamic Programming ■ War Story: Evolution of the Lobster ■ War Story: What's Past is Prolog ■ War Story: Text Compression for Bar Codes ■ Divide and Conquer ■ Fast Exponentiation ■ Binary Search ■ Square and Other Roots ■ Exercises Graph Algorithms ■ The Friendship Graph ■ Data Structures for Graphs ■ War Story: Getting the Graph ■ Traversing a Graph ■ Breadth-First Search ■ Depth-First Search ■ Applications of Graph Traversal ■ Connected Components ■ Tree and Cycle Detection ■ Two-Coloring Graphs ■ Topological Sorting ■ Articulation Vertices ■ Modeling Graph Problems ■ Minimum Spanning Trees ■ Prim's Algorithm ■ Kruskal's Algorithm ■ Shortest Paths ■ Dijkstra's Algorithm ■ ❍ ❍ file:///E|/BOOK/BOOK/NODE4.HTM (2 of 7) [19/1/2003 1:27:35] CuuDuongThanCong.com HT/DIG image compression codes HT/DIG image compression codes An alternate WWW text search engine is {\em ht://Dig} from Andrew Scherpbier, which also contains implementations of Soundex and Metaphone It is available from http://htdig.sdsu.edu/, and released under the GNU general public licence ● ● Source ht://dig distribution Download Files (local site) Problem Links ● Approximate String Matching (7) About the Book Send us Mail Go to Main Page This page last modified on Oct 13, 1996 file:///E|/WEBSITE/IMPLEMEN/HTDIG/IMPLEMEN.HTM [19/1/2003 1:40:57] CuuDuongThanCong.com CAP Contig Assembly Program CAP Contig Assembly Program CAP (Contig Assembly Program) by Xiaoqiu Huang is a C language program supporting DNA shotgun sequencing, by finding the shortest common superstring of a set of fragments As to performance, CAP took hours to assemble 1015 fragments of a total of 252,000 characters on a Sun SPARCstation SLC Certain parameters will need to be tweaked to make it accommodate non-DNA data It is available by anonymous ftp from cs.mtu.edu in the pub/huang directory MAP (Multiple Alignment Program) also by Xiaoqiu Huang is a C language program computes a multiple global alignment of sequences using an iterative pairwise method It is also available by anonymous ftp from cs.mtu.edu in the pub/huang directory ● ● Download Files (local site) Author's homepage with original sources Problem Links ● ● Longest Common Substring (8) Shortest Common Superstring (8) About the Book Send us Mail Go to Main Page This page last modified on Oct 16, 1996 file:///E|/WEBSITE/IMPLEMEN/CAP/IMPLEMEN.HTM [19/1/2003 1:40:57] CuuDuongThanCong.com Shape similarity testing via turning functions Shape similarity testing via turning functions This is an implementation in C by Eugene K Ressler of the turning function metric for comparing polygonal shapes developed by Arkin, Chew, Huttenlocher, Kedem, and Mitchell It expands a little on the cited reference to achieve O(n) space and O(mn log n) run time This source may be freely distributed and used for non-commercial purposes, so long as this comment is attached to any code copied or derived from it ● Download Files (local site) Problem Links ● Shape Similarity (6) About the Book Send us Mail Go to Main Page This page last modified on Oct 10, 1996 file:///E|/WEBSITE/IMPLEMEN/TURN/IMPLEMEN.HTM [19/1/2003 1:40:58] CuuDuongThanCong.com NAUTY Graph Isomorphism NAUTY Graph Isomorphism The world's fastest isomorphism testing program is Nauty, by Brendan D McKay Nauty (No AUTomorphisms, Yes?) is a set of very efficient C language procedures for determining the automorphism group of a vertex-colored graph It provides this information in the form of a set of generators, the size of group, and the orbits of the group Nauty is also able to produce a canonicallylabeled isomorph of the graph, to assist in isomorphism testing It was the basis of the first program to generate all the 11-vertex graphs without isomorphs, and can test most graphs of less than 100 vertices in well under a second Nauty has been successfully ported to a variety of operating systems and C compilers It may be obtained from http://cs.anu.edu.au/people/bdm/ It is free for educational and research applications, but for commercial use contact the author at bdm@cs.anu.edu.au ● ● Download Files (local site) Problem Links ● Graph Isomorphism (10) About the Book Send us Mail Go to Main Page This page last modified on Apr 23, 1997 file:///E|/WEBSITE/IMPLEMEN/NAUTY/IMPLEMEN.HTM [19/1/2003 1:40:59] CuuDuongThanCong.com POSIT - Propositional Satisfiability Testbed POSIT - Propositional Satisfiability Testbed The propositional satisfiability tester POSIT, by Jon W Freeman, is based on a highly optimized version of the Davis-Putnum procedure It is available by anonymous ftp from ftp.cis.upenn.edu in /pub/freeman/posit-1.0.tar.Z ● ● POSIT (primary FTP site) Download Files (local site) Problem Links ● Satisfiability (8) About the Book Send us Mail Go to Main Page This page last modified on Apr 23, 1997 file:///E|/WEBSITE/IMPLEMEN/POSIT/IMPLEMEN.HTM [19/1/2003 1:40:59] CuuDuongThanCong.com BIPM Bipartite Matching Codes BIPM Bipartite Matching Codes This directory contains several programs that implement algorithms for bipartite matching in unweighted graphs Except where noted, all programs were written by Joao Carlos Setubal (setubal@dcc.unicamp.br), who also wrote this documentation You can use and modify the codes freely, but please acknowledge authorship If a bibliographic reference is needed, use the following: J C Setubal, Sequential and Parallel Experimental Results with Bipartite Matching Algorithms Technical Report IC-96-09, Institute of Computing, State University of Campinas (Brazil), 1996 A postscript file containing this tech report is in directory techreport, compressed with gzip It will be easier to understand what each code does if you read the tech report first ● ● Original distribution Download Files (local site) Problem Links ● Matching (8) About the Book Send us Mail Go to Main Page This page last modified on Apr 23, 1997 file:///E|/WEBSITE/IMPLEMEN/BIPM/IMPLEMEN.HTM [19/1/2003 1:41:00] CuuDuongThanCong.com GEOMPACK - triangulation and convex decomposition codes GEOMPACK - triangulation and convex decomposition codes GEOMPACK is a suite of Fortran 77 codes by Barry Joe of the University of Alberta, for 2- and 3dimensional triangulation and convex decomposition problems In particular, it does both Delaunay triangulation and convex decompositions of polygonal and polyhedral regions, as well as arbitrary dimensional Delaunay triangulations These codes are well respected, and worth checking out They can be obtained from ftp://ftp.cs.ualberta.ca/pub/geompack Papers describing the algorithms used for each program are available at the ftp site The GEOMPACK software package is copyrighted and made available here for noncommercial use only If you want to include any GEOMPACK routines in a commercial software product, please contact Barry Joe about obtaining a license ● ● ● FTP site for GEOMPACK Barry Joe's home page Download Files (local site) Problem Links ● ● Polygon Partitioning (8) Triangulation (8) About the Book Send us Mail Go to Main Page This page last modified on Apr 24, 1996 file:///E|/WEBSITE/IMPLEMEN/GEOMPACK/IMPLEMEN.HTM [19/1/2003 1:41:01] CuuDuongThanCong.com LAPACK and LINPACK Linear Algebra PACKages LAPACK and LINPACK Linear Algebra PACKages LAPACK provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems The associated matrix factorizations (LU, Cholesky, QR, SVD, Schur, generalized Schur) are also provided, as are related computations such as reordering of the Schur factorizations and estimating condition numbers Dense and banded matrices are handled, but not general sparse matrices In all areas, similar functionality is provided for real and complex matrices, in both single and double precision LINPACK, also provided in the distrib directory, is an older linear algebra package, of which LAPACK is its successor We have included LINPACK because it more obviously solves determinants than LAPACK ● ● ● Source LAPACK distribution Source LINPACK distribution Download Files (local site) Problem Links ● Solving Linear Equations (10) About the Book Send us Mail Go to Main Page This page last modified on Aug 13, 1996 file:///E|/WEBSITE/IMPLEMEN/LAPACK/IMPLEMEN.HTM [19/1/2003 1:41:01] CuuDuongThanCong.com Mathematica Assorted Routines Mathematica Assorted Routines These files contain implementations of interesting algorithms in the Mathematica programming language A large collection of Mathematica programs is MathSource, maintained by Wolfram Research at http://www.wri.com/mathsource/ Many of the files below are from MathSource, while others were obtained directly from the authors ● Strassen's Matrix Multiplication Algorithm An implementation offered ``without comment or promise of efficiency'', by Stan Wagon of Macalester College, wagon@macalstr.edu in distrib/strassen.m Combinatorica, a library of 230 algorithms for combinatorics and graph theory written in Mathematica, has a separate entry in this algorithm repository ● ● Download Files (local site) MathSource at Wolfram Research Problem Links ● Matrix Multiplication (6) About the Book Send us Mail Go to Main Page This page last modified on Aug 10, 1996 file:///E|/WEBSITE/IMPLEMEN/MATH/IMPLEMEN.HTM [19/1/2003 1:41:02] CuuDuongThanCong.com User Comments User Comments Archive ● ● (algorith@cs.sunysb.edu):Welcome to the User Comments Archive (skiena@cs.sunysb.edu):Test of user comments About the Book Send us Mail Go to Main Page file:///E|/WEBSITE/FEEDBACK/COMMENTS/COMMENTS.HTM [19/1/2003 1:41:03] CuuDuongThanCong.com The Algorithm Design Manual The Algorithm Design Manual ● ● ● ● Overview Contents About the Author To Order Author Steven S Skiena Department of Computer Science State University of New York at Stony Brook Overview http://www.telospub.com/catalog/COMPUTERSCI/Algorithm.html (1 of 5) [19/1/2003 2:00:54] CuuDuongThanCong.com The Algorithm Design Manual Most professional programmers are not well equipped to tackle algorithm design problems "The Algorithm Design Manual" by Steve Skiena of SUNY Stony Brook, is uniquely designed to provide access to combinatorial algorithms technology for computer professionals and students Skiena has taken some of the "mystery" out of finding the right algorithm for the job, by drawing heavily on the author's own real-world experiences Thus the work takes on a very practical character, as reflected in its title: "Manual" The Book is divided into two parts, the first being a general guide to techniques for the design and analysis of computer algorithms The second is a reference section, comprising the catalog of algorithmic resources, implementations, and an extensive bibliography The primary audience for this book/CD-ROM combination is the working professional who uses algorithms on a regular or occasional basis and has need for a handy reference A major feature of this book is the inclusion of a complete "catalog" of important algorithmic problems By browsing this catalog, readers can quickly identify what the problem they have encountered is called, what is known about it, and how they should proceed if they need to solve it Nothing like this catalog exists in the computing literature for general computer algorithms This work can also readily be used as a textbook or course supplement in standard courses on algorithm design Pedagogic features include pen-and paper exercises, "team projects", independent student projects, "take home" lessons (goals) at the beginning of chapters Other teaching and learning aids reside on the accompanying CD-ROM The multiplatiform CD-ROM contains a full hypertext version of the book, with a comprehensive online index, and all of the code/algorithms residing on the author's web site at Stony Brook in the "Algorithm Repository" there: www.cs.sunysb.edu/~algorith/ URLs for all cited implementations mirroring the Stony Brook web site and algorthim repository are included Also included on the CD-ROM are 10 hours of audio lectures presented by the author, and series of slides which instructors can use to help teach their courses There is additional useful information and updates which are available through accessing the author's web site Table of Contents Part I Techniques Chapter Introduction to Algorithms 1.1 Correctness and Efficiency 1.2 Expressing Algorithms 1.3 Keeping Score http://www.telospub.com/catalog/COMPUTERSCI/Algorithm.html (2 of 5) [19/1/2003 2:00:54] CuuDuongThanCong.com The Algorithm Design Manual 1.4 The Big Oh Notation 1.5 Growth Rates 1.6 Logarithms 1.7 Modeling the Problem 1.8 About the War Stories 1.9 War Story: Psychic Modeling 1.10 Exercises Chapter Data Structures and Sorting 2.1 Fundamental Data Types 2.2 Specialized Data Structures 2.3 Sorting 2.4 Applications of Sorting 2.5 Approaches to Sorting 2.6 War Story: Stripping Triangulations 2.7 War Story: Mystery of the Pyramids 2.8 War Story: String em Up 2.9 Exercises Chapter Breaking Problems Down 3.1 Dynamic Programming 3.2 Limitations of Dynamic Programming 3.3 War Story: Evolution of the Lobster 3.4 War Story: What s Past is Prolog 3.5 War Story: Text Compression for Bar Codes 3.6 Divide and Conquer 3.7 Exercises Chapter Graph Algorithms 4.1 The Friendship Graph 4.2 Data Structures for Graphs 4.3 War Story: Getting the Graph 4.4 Traversing a Graph 4.5 Applications of Graph Traversal 4.6 Modeling Graph Problems 4.7 Minimum Spanning Trees 4.8 Shortest Paths 4.9 War Story: Nothing but Nets 4.10 War Story: Dialing for Documents 4.11 Exercises Chapter Combinatorial Search and Heuristic Methods 5.1 Backtracking 5.2 Search Pruning 5.3 Bandwidth Minimization 5.4War Story: Covering Chessboards 5.5 Heuristic Methods http://www.telospub.com/catalog/COMPUTERSCI/Algorithm.html (3 of 5) [19/1/2003 2:00:54] CuuDuongThanCong.com The Algorithm Design Manual 5.6 War Story: Annealing Arrays 5.7 Parallel Algorithms 5.8 War Story: Going Nowhere Fast 5.9 Exercises Chapter Intractable Problems and Approximations 6.1 Problems and Reductions 6.2 Simple Reductions 6.3 Satisfiability 6.4 Difficult Reductions 6.5 Other NP-Complete Problems 6.6 The Art of Proving Hardness 6.7 War Story: Hard Against the Clock 6.8 Approximation Algorithms 6.9 Exercises Chapter How To Design Algorithms Part II Resources Chapter A Catalog of Algorithmic Problems 8.1 Data Structures 8.2 Numerical Problems 8.3 Combinatorial Problems 8.4 Graph Problems - polynomial-time problems 8.5 Graph Problems - hard problems 8.6 Computational Geometry 8.7 Set and String Problems Chapter Algorithmic Resources 9.1 Software Systems 9.2 Data Sources 9.3 Textbooks 9.4 On-Line Resources 9.5 Professional Consulting Services 1997/496 pages/Hardcover ISBN 0-387-94860-0 Back to top About the Author http://www.telospub.com/catalog/COMPUTERSCI/Algorithm.html (4 of 5) [19/1/2003 2:00:54] CuuDuongThanCong.com The Algorithm Design Manual Steve Skiena is currently an Associate Professor of Computer Science at the State University of New York, Stony Brook where he has been since 1988 Back to top To Order ❍ Order a Book Online ❍ ❍ Detailed Ordering Information To order by regular mail, send orders to: Springer-Verlag New York, Inc PO Box 2485 Secaucus, NJ 07096-2485 ❍ To order by phone, call: 1-800-777-4643 ❍ To order by fax: 201-348-4505 Back to top Back to TELOS Catalog Back to TELOS Home Page http://www.telospub.com/catalog/COMPUTERSCI/Algorithm.html (5 of 5) [19/1/2003 2:00:54] CuuDuongThanCong.com ... ● ● ● ● ● Lecture - analyzing algorithms Lecture - asymptotic notation Lecture - recurrence relations Lecture - heapsort Lecture - quicksort Lecture - linear sorting Lecture - elementary data... structures Lecture - binary trees Lecture - catch up Lecture 10 - tree restructuring Lecture 11 - backtracking Lecture 12 - introduction to dynamic programming Lecture 13 - dynamic programming... Lecture 14 - data structures for graphs Lecture 15 - DFS and BFS Lecture 16 - applications of DFS and BFS Lecture 17 - minimum spanning trees Lecture 18 - shortest path algorthms Lecture 19 - satisfiability

Ngày đăng: 29/08/2020, 18:24

TỪ KHÓA LIÊN QUAN

w