Description
‘The book under review is an interesting elaboration that fills the gaps in libraries for concisely written and student-friendly books about essentials in computer science … I recommend this book for anyone who would like to study algorithms, learn a lot about computer science or simply would like to deepen their knowledge … The book is written in very simple English and can be understood even by those with limited knowledge of the English language. It should be emphasized that, despite the fact that the book consists of many examples, mathematical formulas and theorems, it is very hard to find any mistakes, errors or typos.’ zbMATHIn computer science, an algorithm is an unambiguous specification of how to solve a class of problems. Algorithms can perform calculation, data processing and automated reasoning tasks.As an effective method, an algorithm can be expressed within a finite amount of space and time and in a well-defined formal language for calculating a function. Starting from an initial state and initial input (perhaps empty), the instructions describe a computation that, when executed, proceeds through a finite number of well-defined successive states, eventually producing ‘output’ and terminating at a final ending state. The transition from one state to the next is not necessarily deterministic; some algorithms, known as randomized algorithms, incorporate random input.This book introduces a set of concepts in solving problems computationally such as Growth of Functions; Backtracking; Divide and Conquer; Greedy Algorithms; Dynamic Programming; Elementary Graph Algorithms; Minimal Spanning Tree; Single-Source Shortest Paths; All Pairs Shortest Paths; Flow Networks; Polynomial Multiplication, to ways of solving NP-Complete Problems, supported with comprehensive, and detailed problems and solutions, making it an ideal resource to those studying computer science, computer engineering and information technology.
Table of Contents
- Cover
- Halftitle
- Series
- Title
- Copyright
- Dedication
- Preface
- About the Author
- Contents
- Chapter 1. Algorithms
- Some Sorting Algorithms
- Bubble sort
- Insertion sort
- Selection sort
- Quick sort
- Algorithm Performance/Algorithm Complexity
- Heap Sort
- Exercise 1.1
- Chapter 2. Growth of Functions
- Introduction
- Asymptotic Notations
- O-notation (big oh notation)
- Ω-notation (big omega notation)
- θ-notation (big theta notation)
- Some Asymptotic Notations Using Limits
- Exercise 2.1
- Asymptotic Notations in Equations
- Comparison of Growth of Some Typical Functions
- Exercise 2.2
- Exercise 2.3
- Some Typical Examples
- Exercise 2.4
- Chapter 3. Backtracking
- Backtracking Procedure
- Graph Coloring
- n-Queen Problem
- n-Queen Problem and Permutation Tree
- Solving Sudoku Problem Using Backtracking
- Exercise 3.1
- Chapter 4. Divide and Conquer
- Divide and Conquer General Algorithm
- Max–Min Problem
- Round-Robin Tennis Tournament
- The Problem of Counterfeit Coin
- Tiling a Defective Chess Board with Exactly One Defective Square Using Triominoes
- Strassen’s Matrix Multiplication Algorithm
- Medians and Order Statistic
- Worst-case running time of select (order statistic)
- Exercise 4.1
- Chapter 5. Greedy Algorithms
- Some Examples
- Knapsack Problem
- Job Sequencing with Deadlines
- Huffman Code
- Exercise 5.1
- Chapter 6. Dynamic Programming
- Matrix-Chain Multiplication
- Multistage Graphs
- A Business/Industry Oriented Problem
- Largest Common Subsequence
- Optimal Binary Search Tree
- Exercise 6.1
- Optimal Triangulation of a Polygon
- Exercise 6.2
- Exercise 6.3
- Chapter 7. Elementary Graph Algorithms
- Representations of Graphs
- Queues
- Exercise 7.1
- Shortest Paths
- Breadth-First Search
- Exercise 7.2
- Breadth-first tree
- Exercise 7.3
- Depth-First Search
- Directed Acyclic Graphs
- Topological sort
- Strongly Connected Components
- Exercise 7.4
- Chapter 8. Minimal Spanning Tree
- Prim’s Algorithm
- Kruskal’s Algorithm
- Some Examples
- Exercise 8.1
- Chapter 9. Single-Source Shortest Paths
- Preliminaries
- Dijkstra’s Algorithm
- Bellman–Ford Algorithm
- Exercise 9.1
- Predecessor Subgraph
- Difference Constraints and Shortest Paths
- Exercise 9.2
- Chapter 10. All Pairs Shortest Paths
- A Recursive Algorithm for Shortest Path Lengths
- The Floyd–Warshall Algorithm
- Construction of a shortest path
- Transitive Closure
- Exercise 10.1
- Johnson’s Algorithm
- Exercise 10.2
- Chapter 11. Flow Networks
- Ford and Fulkerson Theorem
- Labeling Procedure for Maximal Flow and Flow Pattern
- Maximum Bipartite Matching
- Exercise 11.1
- Exercise 11.2
- Chapter 12. Polynomial Multiplication, FFT and DFT
- Evaluation of a Polynomial
- Discrete Fourier Transforms and Polynomial Multiplication
- Representation of polynomials
- Primitive Roots of Unity
- Discrete Fourier Transforms
- Exercise 12.1
- Chapter 13. String Matching
- Preliminaries
- The Naïve String-Matching Algorithm
- The Rabin–Karp Algorithm
- Exercise 13.1
- Pattern-Matching with Finite Automata
- Exercise 13.2
- The Knuth–Morris–Pratt Algorithm
- Some auxiliary functions
- The KMP procedure
- Chapter 14. Sorting Networks
- Comparison Networks
- Batcher’s Odd–Even Mergsort
- Exercise 14.1
- The Zero-One Principle
- A Bitonic Sorting Network
- Exercise 14.2
- Exercise 14.3
- Another Merging Network
- A Sorting Network
- Exercise 14.4
- Chapter 15. NP-Complete Problems
- Classes P, NP and NP-Complete
- Optimization Problems as Decision Problems
- Reducibility or Reductions
- Exercise 15.1
- Some NP-Complete Problems
- Exercise 15.2
- Bibliography
- Index
Additional information
| Weight | 0.875 kg |
|---|
Only logged in customers who have purchased this product may leave a review.
Related Products









Reviews
There are no reviews yet.