Algorithm Design : Foundations, Analysis, and Internet Examples

個数:

Algorithm Design : Foundations, Analysis, and Internet Examples

  • 提携先の海外書籍取次会社に在庫がございます。通常3週間で発送いたします。
    重要ご説明事項
    1. 納期遅延や、ご入手不能となる場合が若干ございます。
    2. 複数冊ご注文の場合、分割発送となる場合がございます。
    3. 美品のご指定は承りかねます。
  • 【入荷遅延について】
    世界情勢の影響により、海外からお取り寄せとなる洋書・洋古書の入荷が、表示している標準的な納期よりも遅延する場合がございます。
    おそれいりますが、あらかじめご了承くださいますようお願い申し上げます。
  • ◆画像の表紙や帯等は実物とは異なる場合があります。
  • ◆ウェブストアでの洋書販売価格は、弊社店舗等での販売価格とは異なります。
    また、洋書販売価格は、ご注文確定時点での日本円価格となります。
    ご注文確定後に、同じ洋書の販売価格が変動しても、それは反映されません。
  • 製本 Paperback:紙装版/ペーパーバック版/ページ数 670 p.
  • 言語 ENG
  • 商品コード 9780471383659
  • DDC分類 005.1

Full Description

Are you looking for something different in your Algorithms text? Are you looking for an Algorithms text that offers theoretical analysis techniques as well as design patterns and experimental methods for the engineering of algorithms? Michael Goodrich and Roberto Tamassia, authors of the successful, Data Structures and Algorithms in Java, 2/e, have written Algorithm Design, a text designed to provide a comprehensive introduction to the design, implementation and analysis of computer algorithms and data structures from a modern perspective.

Written for an undergraduate, junior-senior algorithms course this text offers several implementation case studies and uses Internet applications to motivate many topics such as hashing, sorting and searching.

Contents

I Fundamental Tools 1

1 Algorithm Analysis 3

1.1 Methodologies for Analyzing Algorithms  5

1.2 Asymptotic Notation 13

1.3 A Quick Mathematical Review  21

1.4 Case Studies in Algorithm Analysis  31

1.5 Amortization  34

1.6 Experimentation  42

1.7 Exercises  47

2 Basic Data Structures 55

2.1 Stack sand Queues  57

2.2 Vectors, Lists, and Sequences  65

2.3 Trees  75

2.4 Priority Queues and Heaps  94

2.5 Dictionaries and Hash Tables  114

2.6 Java Example: Heap  128

2.7 Exercises  131

3 Search Trees and Skip Lists 139

3.1 Ordered Dictionaries and Binary Search Trees  141

3.2 AVL Trees  152

3.3 Bounded-Depth Search Trees  159

3.4 Splay Trees  185

3.5 Sk i p Lists  195

3.6 Java Example: AVL and Red-Black Trees  202

3.7 Exercises  212

4 Sorting, Sets, and Selection 217

4.1 Merge-Sort  219

4.2 The Set Abstract Data Type  225

4.3 Quick -Sort  235

4.4 A Lower Bound on Comparison-Based Sorting  239

4.5 Buck et-Sort and Radix-Sort  241

4.6 Comparison of Sorting Algorithms  244

4.7 Selection  245

4.8 Java Example: In-Place Quick -Sort  248

4.9 Exercises  251

5 Fundamental Techniques 257

5.1 The GreedyMethod  259

5.2 Divide-and-Conquer  263

5.3 Dynamic Programming  274

5.4 Exercises  282

II Graph Algorithms 285

6 Graphs 287

6.1 The Graph Abstract Data Type  289

6.2 Data Structures for Graphs  296

6.3 Graph Traversal  303

6.4 Directed Graphs  316

6.5 Java Example: Depth-First Search  329

6.6 Exercises  335

7 Weighted Graphs 339

7.1 Single-Source Shortest Paths  341

7.2 All-Pairs Shortest Paths  354

7.3 Minimum Spanning Trees  360

7.4 Java Example: Dijk stra's Algorithm  373

7.5 Exercises  376

8 Network Flow and Matching 381

8.1 Flows and Cuts  383

8.2 Maximum Flow  387

8.3 Maximum BipartiteMatching  396

8.4 Minimum-Cost Flow  398

8.5 Java Example: Minimum-Cost Flow  405

8.6 Exercises  412

III Internet Algorithmics 415

9 Text Processing 417

9.1 Strings and PatternMatching Algorithms  419

9.2 Tries  429

9.3 Text Compression  440

9.4 Text Similarity Testing  443

9.5 Exercises  447

10 Number Theory and Cryptography 451

10.1 Fundamental Algorithms Involving Numbers  453

10.2 Cryptographic Computations  471

10.3 Information Security Algorithms and Protocols  481

10.4 The Fast Fourier Transform  488

10.5 Java Example: FFT  500

10.6 Exercises  508

11 Network Algorithms 511

11.1 ComplexityMeasures and Models  513

11.2 Fundamental Distributed Algorithms  517

11.3 Broadcast and Unicast Routing  530

11.4 Multicast Routing  535

11.5 Exercises  541

IV Additional Topics 545

12 Computational Geometry 547

12.1 Range Trees  549

12.2 Priority Search Trees  556

12.3 Quadtrees and k-D Trees  561

12.4 The Plane Sweep Technique  565

12.5 Convex Hulls  572

12.6 Java Example: Convex Hull  583

12.7 Exercises  587

13 NP-Completeness 591

13.1 P and NP  593

13.2 NP-Completeness  599

13.3 Important NP-Complete Problems  603

13.4 Approximation Algorithms  618

13.5 Back track i ng and Branch-and-Bound  627

13.6 Exercises  638

14 Algorithmic Frameworks 643

14.1 External-Memory Algorithms  645

14.2 Parallel Algorithms  657

14.3 Online Algorithms  667

14.4 Exercises  680

A Useful Mathematical Facts 685

Bibliography 689

Index 698