Foundations Of Algorithms / Edition 4

Hardcover (Print)
Rent
Rent from BN.com
$31.86
(Save 83%)
Est. Return Date: 12/23/2014
Buy Used
Buy Used from BN.com
$125.24
(Save 34%)
Item is in good condition but packaging may have signs of shelf wear/aging or torn packaging.
Condition: Used – Good details
Used and New from Other Sellers
Used and New from Other Sellers
from $29.05
Usually ships in 1-2 business days
(Save 84%)
Other sellers (Hardcover)
  • All (13) from $29.05   
  • New (4) from $38.87   
  • Used (9) from $29.05   

Overview

Revised and updated, the Fourth Edition of Foundations of Algorithms continues to offer a well-balanced presentation of algorithm design, complexity of algorithms and computational complexity. Perfect for mainstream computer science students with a background in college algebra and discrete structures, this edition presents mathematical concepts using lucid explanations and a simpler notation than is found in most texts. The authors reinforce key algorithmic explanations with numerous concrete examples to help students grasp theoretical concepts.

Key Features of the Fourth Edition:

Now makes use of C++ and Java pseudocode, helping students understand complex algorithms.

A chapter on numerical algorithms includes a review of basic number theory, Euclid's Algorithm for finding the greatest common divisor, a review of modular arithmetic, an algorithm for solving modular linear equations, an algorithm for computing modular powers, and the new polynomial-time algorithm for determining whether a number is prime.

Contains numerous examples throughout, ensuring that students have a clear grasp of the complex algorithms being discussed.

A Review of essential mathematical concepts is presented in three appendices.

Read More Show Less

Product Details

  • ISBN-13: 9780763782504
  • Publisher: Jones & Bartlett Learning
  • Publication date: 12/28/2009
  • Edition description: 4E
  • Edition number: 4
  • Pages: 627
  • Sales rank: 1,277,981
  • Product dimensions: 7.50 (w) x 9.20 (h) x 1.50 (d)

Table of Contents

Chapter 1 Algorithms: Efficiency, Analysis, and Order 1

1.1 Algorithms 2

1.2 The Importance of Developing Efficient Algorithms 9

1.2.1 Sequential Search Versus Binary Search 9

1.2.2 The Fibonacci Sequence 12

1.3 Analysis of Algorithms 17

1.3.1 Complexity Analysis 17

1.3.2 Applying the Theory 24

1.3.3 Analysis of Correctness 24

1.4 Order 25

1.4.1 An Intuitive Introduction to Order 25

1.4.2 A Rigorous Introduction to Order 28

1.4.3 Using a Limit to Determine Order 39

1.5 Outline of This Book 41

Exercises 42

Chapter 2 Divide-and-Conquer 47

2.1 Binary Search 48

2.2 Mergesort 53

2.3 The Divide-and-Conquer Approach 59

2.4 Quicksort (Partition Exchange Sort) 60

2.5 Strassen's Matrix Multiplication Algorithm 67

2.6 Arithmetic with Large Numbers 72

2.6.1 Representation of Large Integers: Addition and Other Linear-Time Operations 72

2.6.2 Multiplication of Large Integers 72

2.7 Determining Thresholds 78

2.8 When Not to Use Divide-and-Conquer 82

Exercises 83

Chapter 3 Dynamic Programming 91

3.1 The Binomial Coefficient 92

3.2 Floyd's Algorithm for Shortest Paths 97

3.3 Dynamic Programming and Optimization Problems 105

3.4 Chained Matrix Multiplication 107

3.5 Optimal Binary Search Trees 116

3.6 The Traveling Salesperson Problem 125

3.7 Sequence Alignment 133

Exercises 141

Chapter 4 The Greedy Approach 145

4.1 Minimum Spanning Trees 148

4.1.1 Prim's Algorithm 152

4.1.2 Kruskal's Algorithm 158

4.1.3 Comparing Prim's Algorithm with Kruskal's Algorithm 163

4.1.4 Final Discussion 163

4.2 Dijkstra's Algorithm for Single-Source Shortest Paths 164

4.3 Scheduling 167

4.3.1 Minimizing Total Time in the System 167

4.3.2 Scheduling with Deadlines 170

4.4 Huffman Code 177

4.4.1 Prefix Codes 178

4.4.2 Huffman's Algorithm 179

4.5 The Greedy Approach Versus Dynamic Programming: The Knapsack Problem 183

4.5.1 A Greedy Approach to the 0-1 Knapsack Problem 183

4.5.2 A Greedy Approach to the Fractional Knapsack Problem 185

4.5.3 A Dynamic Programming Approach to the 0-1 Knapsack Problem 185

4.5.4 A Refinement of the Dynamic Programming Algorithm for the 0-1 Knapsack Problem 186

Exercises 189

Chapter 5 Backtracking 197

5.1 The Backtracking Technique 198

5.2 The n-Queens Problem 206

5.3 Using a Monte Carlo Algorithm to Estimate the Efficiency of a Backtracking Algorithm 210

5.4 The Sum-of-Subsets Problem 214

5.5 Graph Coloring 219

5.6 The Hamiltonian Circuits Problem 224

5.7 The 0-1 Knapsack Problem 227

5.7.1 A Backtracking Algorithm for the 0-1 Knapsack Problem 227

5.7.2 Comparing the Dynamic Programming Algorithm and the Backtracking Algorithm for the 0-1 Knapsack Problem 237

Exercises 237

Chapter 6 Branch-and-Bound 243

6.1 Illustrating Branch-and-Bound with the 0-1 Knapsack Problem 245

6.1.1 Breadth-First Search with Branch-and-Bound Pruning 245

6.1.2 Best-First Search with Branch-and-Bound Pruning 251

6.2 The Traveling Salesperson Problem 26

6.3 Abductive Inference (Diagnosis) 265

Exercises 274

Chapter 7 Introduction to Computational Complexity: The Sorting Problem 277

7.1 Computational Complexity 278

7.2 Insertion Sort and Selection Sort 280

7.3 Lower Bounds for Algorithms that Remove at Most One Inversion per Comparison 285

7.4 Mergesort Revisited 287

7.5 Quicksort Revisited 293

7.6 Heapsort 295

7.6.1 Heaps and Basic Heap Routines 295

7.6.2 An Implementation of Heapsort 299

7.7 Comparison of Mergesort, Quicksort, and Heapsort 306

7.8 Lower Bounds for Sorting Only by Comparison of Keys 307

7.8.1 Decision Trees for Sorting Algorithms 307

7.8.2 Lower Bounds for Worst-Case Behavior 310

7.8.3 Lower Bounds for Average-Case Behavior 313

7.9 Sorting by Distribution (Radix Sort) 318

Exercises 322

Chapter 8 More Computational Complexity: The Searching Problem 329

8.1 Lower Bounds for Searching Only by Comparisons of Keys 330

8.1.1 Lower Bounds for Worst-Case Behavior 332

8.1.2 Lower Bounds for Average-Case Behavior 334

8.2 Interpolation Search 340

8.3 Searching in Trees 343

8.3.1 Binary Search Trees 344

8.3.2 B-Trees 348

8.4 Hashing 349

8.5 The Selection Problem: Introduction to Adversary Arguments 354

8.5.1 Finding the Largest Key 355

8.5.2 Finding Both the Smallest and Largest Keys 356

8.5.3 Finding the Second-Largest Key 363

8.5.4 Finding the kth-Smallest Key 368

8.5.5 A Probabilistic Algorithm for the Selection Problem 376

Exercises 380

Chapter 9 Computational Complexity and intractability: An Introduction to the Theory of NP 385

9.1 Intractability 386

9.2 Input Size Revisited 388

9.3 The Three General Problems 392

9.3.1 Problems for Which Polynomial-Time Algorithms Have Been Found 392

9.3.2 Problems That Have Been Proven to Be Intractable 392

9.3.3 Problems That Have Not Been Proven to Be Intractable but for Which Polynomial-Time Algorithms Have Never Been Found 393

9.4 The Theory of NP 394

9.4.1 The Sets P and NP 396

9.4.2 NP-Complete Problems 400

9.4.3 NP-Hard, NP-Easy, and NP-Equivalent Problems 412

9.5 Handling NP-Hard Problems 416

9.5.1 An Approximation Algorithm for the Traveling Salesperson Problem 417

9.5.2 An Approximation Algorithm for the Bin-Packing Problem 421

Exercises 426

Chapter 10 Number-Theoretic Algorithms 429

10.1 Number Theory Review 430

10.1.1 Composite and Prime Numbers 430

10.1.2 Greatest Common Divisor 431

10.1.3 Prime Factorization 434

10.1.4 Least Common Multiple 437

10.2 Computing the Greatest Common Divisor 437

10.2.1 Euclid's Algorithm 438

10.2.2 An Extension to Euclid's Algorithm 442

10.3 Modular Arithmetic Review 444

10.3.1 Group Theory 444

10.3.2 Congruency Modulo n 446

10.3.3 Subgroups 452

10.4 Solving Modular Linear Equations 458

10.5 Computing Modular Powers 464

10.6 Finding Large Prime Numbers 466

10.6.1 Searching for a Large Prime 467

10.6.2 Checking if a Number Is Prime 468

10.7 The RSA Public-Key Cryptosystem 486

10.7.1 Public-Key Cryptosystems 486

10.7.2 The RSA Cryptosystem 487

Exercises 490

Chapter 11 Introduction to Parallel Algorithms 495

11.1 Parallel Architectures 498

11.1.1 Control Mechanism 498

11.1.2 Address-Space Organization 500

11.1.3 Interconnection Networks 501

11.2 The PRAM Model 505

11.2.1 Designing Algorithms for the CREW PRAM Model 507

11.2.2 Designing Algorithms for the CRCW PRAM Model 515

Exercises 518

Appendix A Review of Necessary Mathematics 521

A.l Notation 521

A.2 Functions 523

A.3 Mathematical Induction 524

A.4 Theorems and Lemmas 531

A.5 Logarithms 532

A.5.1 Definition and Properties of Logarithms 532

A.5.2 The Natural Logarithm 534

A.6 Sets 536

A.7 Permutations and Combinations 538

A.8 Probability 541

A.8.1 Randomness 546

A.8.2 The Expected Value 550

Exercises 552

Appendix B Solving Recurrence Equations: With Applications to Analysis of Recursive Algorithms 559

B.l Solving Recurrences Using Induction 559

B.2 Solving Recurrences Using the Characteristic Equation 563

B.2.1 Homogeneous Linear Recurrences 563

B.2.2 Nonhomogeneous Linear Recurrences 572

B.2.3 Change of Variables (Domain Transformations) 578

B.3 Solving Recurrences by Substitution 581

B.4 Extending Results for n, a Power of a Positive Constant b, to n in General 583

B.5 Proofs of Theorems 589

Exercises 592

Appendix C Data Structures for Disjoint Sets 599

References 609

Index 615

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)