Cover image for INTRODUCTION TO THE ANALYSIS OF ALGORITHMS.
INTRODUCTION TO THE ANALYSIS OF ALGORITHMS.
Title:
INTRODUCTION TO THE ANALYSIS OF ALGORITHMS.
Author:
Soltys, Michael.
ISBN:
9789814401166
Personal Author:
Physical Description:
1 online resource (211 pages)
Contents:
Contents -- Preface -- 1. Preliminaries -- 1.1 Induction -- 1.2 Invariance -- 1.3 Correctness of algorithms -- 1.3.1 Division algorithm -- 1.3.2 Euclid's algorithm -- 1.3.3 Palindromes algorithm -- 1.3.4 Further examples -- 1.3.5 Recursion and fixed points -- 1.3.6 Formal verification -- 1.4 Stable marriage -- 1.5 Answers to selected problems -- 1.6 Notes -- 2. Greedy Algorithms -- 2.1 Minimum cost spanning trees -- 2.2 Jobs with deadlines and profits -- 2.3 Further examples and problems -- 2.3.1 Make change -- 2.3.2 Maximum weight matching -- 2.3.3 Shortest path -- 2.3.4 Huffman codes -- 2.4 Answers to selected problems -- 2.5 Notes -- 3. Divide and Conquer -- 3.1 Mergesort -- 3.2 Multiplying numbers in binary -- 3.3 Savitch's algorithm -- 3.4 Further examples and exercises -- 3.4.1 Extended Euclid's algorithm -- 3.4.2 Finite automata -- 3.5 Answers to selected problems -- 3.6 Notes -- 4. Dynamic Programming -- 4.1 Longest monotone subsequence problem -- 4.2 All pairs shortest path problem -- 4.2.1 Bellman-Ford algorithm -- 4.3 Simple knapsack problem -- 4.3.1 Dispersed knapsack problem -- 4.3.2 General knapsack problem -- 4.4 Activity selection problem -- 4.5 Jobs with deadlines, durations and profits -- 4.6 Further examples and problems -- 4.6.1 Consecutive subsequence sum problem -- 4.6.2 Regular expressions -- 4.6.3 Context free grammars -- 4.7 Answers to selected problems -- 4.8 Notes -- 5. Online Algorithms -- 5.1 List accessing problem -- 5.2 Paging -- 5.2.1 Demand paging -- 5.2.2 FIFO -- 5.2.3 LRU -- 5.2.4 Marking algorithms -- 5.2.5 FWF -- 5.2.6 LFD -- 5.3 Answers to selected problems -- 5.4 Notes -- 6. Randomized Algorithms -- 6.1 Perfect matching -- 6.2 Pattern matching -- 6.3 Primality testing -- 6.4 Public key cryptography -- 6.4.1 Diffie-Hellman key exchange -- 6.4.2 ElGamal -- 6.4.3 RSA -- 6.5 Further exercises.

6.6 Answers to selected problems -- 6.7 Notes -- Appendix A Number Theory and Group Theory -- A.1 Answers to selected problems -- A.2 Notes -- Appendix B Relations -- B.1 Closure -- B.2 Equivalence relation -- B.3 Partial orders -- B.4 Lattices -- B.5 Fixed point theory -- B.6 Answers to selected problems -- B.7 Notes -- Appendix C Logic -- C.1 Propositional Logic -- C.2 First Order Logic -- C.3 Peano Arithmetic -- C.4 Answers to selected problems -- C.5 Notes -- Bibliography -- Index.
Abstract:
A successor to the first edition, this updated and revised book is a great companion guide for students and engineers alike, specifically software engineers who design reliable code. While succinct, this edition is mathematically rigorous, covering the foundations of both computer scientists and mathematicians with interest in algorithms.Besides covering the traditional algorithms of Computer Science such as Greedy, Dynamic Programming and Divide & Conquer, this edition goes further by exploring two classes of algorithms that are often overlooked: Randomised and Online algorithms - with emphasis placed on the algorithm itself.The coverage of both fields are timely as the ubiquity of Randomised algorithms are expressed through the emergence of cryptography while Online algorithms are essential in numerous fields as diverse as operating systems and stock market predictions.While being relatively short to ensure the essentiality of content, a strong focus has been placed on self-containment, introducing the idea of pre/post-conditions and loop invariants to readers of all backgrounds. Containing programming exercises in Python, solutions will also be placed on the book's website.
Local Note:
Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2017. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.
Electronic Access:
Click to View
Holds: Copies: