Viva Group has been honoured with the Best Publisher Award 2022 by the Delhi State Booksellers & Publishers' Association.

Foundations of Algorithms, 5/e

Foundations of Algorithms, 5/e

Foundations of Algorithms, 5/e

  • By: Richard E Neapolitan

₹805.50 ₹895.00 Save: ₹89.50 (10%)

Go to cart

ISBN: 9789384323110

Bind: Paperback

Year: 2018

Pages: 694

Size: 165 x 229 mm

Publisher: Jones & Bartlett Learning

Published in India by: Jones & Bartlett India

Exclusive Distributors: Viva Books

Sales Territory: India, Nepal, Pakistan, Bangladesh, Sri Lanka


Foundations of Algorithms, Fifth Edition offers a well-balanced presentation of algorithm design, complexity analysis of algorithms, and computational complexity. Ideal for any computer science student with a background in college algebra and discrete structures, the text presents mathematical concepts using standard English and simple notation to maximize accessibility and user-friendliness. Concrete examples, appendices reviewing essential mathematical concepts, and a student-focused approach reinforce theoretical explanations and promote learning and retention. C++ and Java pseudocode help students better 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.

The revised and updated Fifth Edition features an all-new chapter on genetic algorithms and genetic programming, including approximate solutions to the traveling salesperson problem, an algorithm for an artificial ant that navigates along a trail of food, and an application to financial trading. With fully updated exercises and examples, Foundations of Algorithms is an essential text for undergraduate and graduate courses in the design and analysis of algorithms.

Key features include:

 • The only text of its kind with a chapter on genetic algorithms and genetic programming
 • Use of C++ and Java pseudocode to help students better understand complex algorithms
 • No calculus background required
 • Numerous clear and student-friendly examples throughout the text
 • Fully updated exercises and examples throughout

Target Audience: 

This book is helpful for all students and academicians of Computer Science.


Preface • About the Author

Chapter 1: Algorithms: Efficiency, Analysis, and Order• Algorithms • The Importance of Developing Efficient Algorithms • Sequential Search Versus Binary Search • The Fibonacci Sequence • Analysis of Algorithms • Complexity Analysis • Applying the Theory • Analysis of Correctness • Order • An Intuitive Introduction to Order • A Rigorous Introduction to Order • Using a Limit to Determine Order • Outline of This Book • Exercises

Chapter 2: Divide-and-Conquer • Binary Search • Mergesort • The Divide-and-Conquer Approach • Quicksort (Partition Exchange Sort) • Strassen's Matrix Multiplication Algorithm • Arithmetic with Large Integers • Representation of Large Integers: Addition and Other Linear-Time Operations • Multiplication of Large Integers • Determining Thresholds • When Not to Use Divide-and-Conquer • Exercises

Chapter 3: Dynamic Programming• The Binomial Coefficient • Floyd's Algorithm for Shortest Paths • Dynamic Programming and Optimization Problems • Chained Matrix Multiplication • Optimal Binary Search Trees • The Traveling Salesperson Problem • Sequence Alignment • Exercises

Chapter 4: The Greedy Approach• Minimum Spanning Trees • Prim's Algorithm • Kruskal's Algorithm • Comparing Prim's Algorithm with Kruskal's Algorithm • Final Discussion • Dijkstra's Algorithm for Single-Source Shortest Paths • Scheduling • Minimizing Total Time in the System • Scheduling with Deadlines • Huffman Code • Prefix Codes • Huffman's Algorithm • The Greedy Approach versus Dynamic Programming: The Knapsack Problem • A Greedy Approach to the 0-1 Knapsack Problem • A Greedy Approach to the Fractional Knapsack Problem • A Dynamic Programming Approach to the 0-1 Knapsack Problem • A Refinement of the Dynamic Programming Algorithm for the 0-1 Knapsack Problem • Exercises

Chapter 5: Backtracking • The Backtracking Technique • The n-Queens Problem • Using a Monte Carlo Algorithm to Estimate the Efficiency of a Backtracking Algorithm • The Sum-of-Subsets Problem • Graph Coloring • The Hamiltonian Circuits Problem • The 0-1 Knapsack Problem • A Backtracking Algorithm for the 0-1 Knapsack Problem • Comparing the Dynamic Programming Algorithm and the Backtracking Algorithm for the 0-1 Knapsack Problem • Exercises

Chapter 6: Branch-and-Bound • Illustrating Branch-and-Bound with the 0-1 Knapsack Problem • Breadth-First Search with Branch-and-Bound Pruning • Best-First Search with Branch-and-Bound Pruning • The Traveling Salesperson Problem • Abductive Inference (Diagnosis) • Exercises

Chapter 7: Introduction to Computational Complexity: The Sorting Problem• Computational Complexity • Insertion Sort and Selection Sort • Lower Bounds for Algorithms that Remove at Most One Inversion per Comparison • Mergesort Revisited • Quicksort Revisited • Heapsort • Heaps and Basic Heap Routines • An Implementation of Heapsort • Comparison of Mergesort, Quicksort, and Heapsort • Lower Bounds for Sorting Only by Comparison of Keys • Decision Trees for Sorting Algorithms • Lower Bounds for Worst-Case Behavior • Lower Bounds for Average-Case Behavior • Sorting by Distribution (Radix Sort) • Exercises

Chapter 8: More Computational Complexity: The Searching Problem• Lower Bounds for Searching Only by Comparisons of Keys • Lower Bounds for Worst-Case Behavior • Lower Bounds for Average-Case Behavior • Interpolation Search • Searching in Trees • Binary Search Trees • B-Trees • Hashing • The Selection Problem: Introduction to Adversary Arguments • Finding the Largest Key • Finding Both the Smallest and Largest Keys • Finding the Second-Largest Key • Finding the kth-Smallest Key • A Probabilistic Algorithm for the Selection Problem • Exercises

Chapter 9: Computational Complexity and Intractability: An Introduction to the Theory of NP• Intractability • Input Size Revisited • The Three General Problem Categories • Problems for Which Polynomial-Time Algorithms Have Been Found • Problems That Have Been Proven to Be Intractable • Problems That Have Not Been Proven to Be Intractable but for Which Polynomial-Time Algorithms Have Never Been Found • The Theory of NP • The Sets P and NP • NP-Complete Problems • NP-Hard, NP-Easy, and NP-Equivalent Problems • Handling NP-Hard Problems • An Approximation Algorithm for the Traveling Salesperson Problem • An Approximation Algorithm for the Bin-Packing Problem • Exercises

Chapter 10: Genetic Algorithms and Genetic Programming• Genetics Review • Genetic Algorithms • Algorithm • Illustrative Example • The Traveling Salesperson Problem • Genetic Programming • Illustrative Example • Articial Ant • Application to Financial Trading • Discussion and Further Reading • Exercises

Chapter 11: Number-Theoretic Algorithms• Number Theory Review • Composite and Prime Numbers • Greatest Common Divisor • Prime Factorization • Least Common Multiple • Computing the Greatest Common Divisor • Euclid's Algorithm • An Extension to Euclid's Algorithm • Modular Arithmetic Review • Group Theory • Congruency Modulo n • Subgroups • Solving Modular Linear Equations • Computing Modular Powers • Finding Large Prime Numbers • Searching for a Large Prime • Checking if a Number Is Prime • The RSA Public-Key Cryptosystem • Public-Key Cryptosystems • The RSA Cryptosystem • Exercises

Chapter 12: Introduction to Parallel Algorithms• Parallel Architectures • Control Mechanism • Address-Space Organization • Interconnection Networks • The PRAM Model • Designing Algorithms for the CREW PRAM Model • Designing Algorithms for the CRCW PRAM Model • Exercises

Appendix A Review of Necessary Mathematics• Notation • Functions • Mathematical Induction • Theorems and Lemmas • Logarithms • Denition and Properties of Logarithms • The Natural Logarithm • Sets • Permutations and Combinations • Probability • Randomness • The Expected Value • Exercises

Appendix B Solving Recurrence Equations: With Applications to Analysis of Recursive Algorithms• Solving Recurrences Using Induction • Solving Recurrences Using the Characteristic Equation • Homogeneous Linear Recurrences • Nonhomogeneous Linear Recurrences • Change of Variables (Domain Transformations) • Solving Recurrences by Substitution • Extending Results for n, a Power of a Positive • Constant b, to n in General • Proofs of Theorems • Exercises

Appendix C Data Structures for Disjoint Sets

References • Index


About the Author:

Richard Neapolitan, PhD- Northwestern University, Illinois

Richard Neapolitan's research interests include probability and statistics, artificial intelligence, cognitive science and applications of probabilistic modeling to fields such as medicine, biology, and finance. Dr. Neapolitan has given talks and conducted seminars throughout the world, including Australia and Hungary. His online tutorial concerning causal learning has been viewed over 10,000 times and has a 5-star rating (see

Dr. Neapolitan is a prolific author and has published in the most prestigious widely used broad area of reasoning under uncertainty. He has written six books, including the seminal 1989 Bayesian network text, Probabilistic Reasoning in Expert Systems; this textbook, Foundations of Algorithms (1996, 1998, 2003, 2011, 2013), which has been translated into several languages and is one of the most widely-used algorithms texts worldwide; Learning Bayesian Networks (2004); Probabilistic Methods for Financial and Marketing Informatics (2007); Probabilistic Methods for Bioinformatics (2009); and Contemporary Artificial Intelligence (2012). His approach to textbook writing is innovative; his books have the reputation of making difficult concepts easy to understand while still remaining rigorous and thought-provoking.


Programming in R with Applicat..

By: Priyanka P. Shinde, Varsha P. ..

ISBN : 9789395654296

₹ 535.50 ₹ 595.00


Writing Fast Programs with CD

By: John Riley

ISBN : 9789386385901

₹ 895.50 ₹ 995.00


Discrete Structures, Logic, an..

By: James L. Hein

ISBN : 9789384323264

₹ 895.50 ₹ 995.00


Analysis of Algorithms, 2/e

By: Jeffery J. McConnell

ISBN : 9789384323189

₹ 805.50 ₹ 895.00


An Introduction to Formal Lang..

By: Peter Linz

ISBN : 9789384323219

₹ 625.50 ₹ 695.00


Computer Science Illuminated, ..

By: Nell Dale & John Lewis

ISBN : 9789384323097

₹ 1,345.50 ₹ 1,495.00