The Art of Algorithm design is a complementary perception of all books on Algorithm design and is a roadmap for all levels of learners as well as professionals dealing with algorithmic problems. Further the book provides a comprehensive introduction to algorithms and covers them in considerable depth, yet makes their design and analysis accessible to all levels of readers. All Algorithms are described and designed with a "pseudocode" to be readable by anyone with little acquaintances of programming.
In a nutshell the book compromises a comprehensive set of problems and their solutions against each algorithm to demonstrate its executional assessment and complexity with an objective to
- Understand the introductory concepts and design principles of algorithms and their complexities.
- Demonstrate the programming implementations of all the algorithms using C-Language.
- Be an excellent handbook on algorithms with self-explanatory chapters enriched with problems and solutions.
While other books may also cover some of the same issues, this book is designed with an objective to be both versatile and complete as it traverses through step-by-step concepts and methods for analyzing each algorithmic complexity with pseudo code examples. Moreover, the book provides with an enjoyable primer to the field of algorithms.
This book is designed for undergraduates and postgraduates studying algorithm design.
Sachi Nandan Mohanty, is an Associate Professor in the Dept of Computer Engineering, College of Engineering Pune, India with 11 years of teaching and research experiences in Algorithm design, Computer Graphics, and Machine Learning.
Pabitra Kumar Tripathy is working as Head, Dept. of Computer Science & Engineering , Kalam Institute of Technology, Berhampur with 15 years of teaching experiences in Programming Languages, Algorithms, and Theory of computation.
Suneeta Satpathy is working as an Associate Professor in the Dept of Computer Science & Engineering, College of Engineering Bhubanewar, Bhubaneswar, Odisha with 13 years of teaching experiences in Computer Programming, Problem solving techniques, and Decision Mining.
Table of Contents
1. Fundamental Concepts of Data StructureArray Stack QueueLinked ListTree 2. Concepts of Algorithm and Recurrences2.1. Algorithm2.2. Design of Algorithm2.3. Algorithmic Notations2.4. Growth of Function2.5. Problems related to notations2.6. Recurrences 3. Divide & Conquer Techniques3.1. Divide and conquer Approach3.2. Binary Search3.3. Merge Sort3.4. Quick Sort3.5. Heap Sort3.6. Priority Queue3.7. Lower Bound for Sorting 4. Dynamic Programming 4.1. Dynamic Programming4.2. Developing dynamic Programming Algorithms.4.3. Matrix Chain Multiplication.4.4. Longest Common Subsequence Problem4.5. Divide and Conquer Vs. Dynamic Programming 5. Greedy Algorithms 5.1. Greedy Algorithms5.2. Activity Selection Problem5.3. Knapsack Problem5.4. Huffman Encoding5.5. Greedy Vs. Dynamic Programming5.6. Data Structure for Disjoint Sets. 6. Graph Algorithms6.1. Traversal Of Graph6.2. Spanning Tree6.3. Single Source Shortest Path’6.4. All Pair Shortest Path 7. Approximation Algorithms7.1. Hamilton Cycle7.2. Approximation Algorithms7.3. Back Tracking7.4. NQueen Problem7.5. Backtracking Algorithms7.6. Branch and Bound 8. Matrix Operations, Linear Programming, Ploynomial & FFT8.1. Matrices8.2. Polynomials8.3. Polynomials and FFT 9. Number Theoretic Algorithms. 9.1. Number Theoritic Algorithms9.2. Greatest Common Divisor9.3. Linear Diophantine Equations9.4. Modular Arithmetic9.5. Linear Congruence9.6. Groups9.7. Ring9.8. Field 10. Programming Implementations of the algorithms10.1. Program for LCS.10.2. Program for Matrix Chain Multiplications.10.3. Program for knapsack Problem10.4. Program for Bellman Ford Algorithm10.5. Program for Travelling salesman problem using backtracking.10.6. Program for Travelling salesman problem using branch and bound.10.7. Program for heap sort.10.8. Program for quick sort10.9. Program for merge sort10.10. Program for Depth First Search10.11. Program for Prim’s algorithm.10.12. Program for Warshall method.10.13. Program for Kruskal Method10.14 Program for Dijkstra Method.10.15. Program for BFS using color code.
Dr.Sachi Nandan Mohanty, received his Postdoc from IIT Kanpur in the year 2019 and Ph.D. from IIT Kharagpur in the year 2015, with MHRD scholarship from Govt of India. He has recently joined as Associate Professor in the Department of Computer Science & Engineering at ICFAI Foundation for Higher Education Hyderabad. Prof. Mohanty research areas include Data mining, Big Data Analysis, Cognitive Science, Fuzzy Decision Making, Brain-Computer Interface, and Computational Intelligence. Prof. S N Mohanty has received 3 Best Paper Awards during his Ph.D at IIT Kharagpur from International Conference at Benjing, China, and the other at International Conference on Soft Computing Applications organized by IIT Rookee in the year 2013. He has published 20 research articles in SCI Journals. As a Fellow on Indian Society Technical Education (ISTE), The Institute of Engineering and Technology (IET), Computer Society of India (CSI), Member of Institute of Engineers and IEEE Computer Society, he is actively involved in the activities of the Professional Bodies/Societies. He has been bestowed with several awards which include "Best Researcher Award from Biju Pattnaik University of Technology in 2019","Best Thesis Award(first Prize) from Computer Society of India in 2015", "Outstanding Faculty in Engineering Award" from Dept. of Higher Education, Govt. of Odisha in 2020. He has received International Travel fund from, SERB, Dept of Science and Technology, Govt. of India for chair the session international conferences USA in 2020. Currently he is the reviewer of various journals and published books with several publishers.
Mr. Pabitra Kumar Tripathy completed M.Tech in computer science from Berhampur university, Odisha in the year 2009. He also completed M.Sc. in mathematics from Khallikote Autonomous college Berhampur, Odisha in the year 2003. He is currently pursuing his Ph.D in computer science and Engineering at Biju Patnaik University of Technology. He is working as Head of Department in the department of Computer Science and Engineering at Kalam Institute of Technology, Berhampur. He is having 15 years of teaching and academic experience. His area of interest are Computer Graphics, Programming Languages, Algorithms, Theory of computation, Compiler design, Artificial Intelligence. He also have published 5 International journals and 2 Patients. He have published 5 number of books for Graduate students.
Dr. Suneeta Satpathy, received her Ph.D. from Utkal University, Bhubaneswar, Odisha, in the year 2015, with Directorate of Forensic Sciences, MHA scholarship from Govt of India. She is currently working as an Associate Professor in the Department of Computer Science & Engineering at College of Engineering Bhubaneswar (CoEB), Bhubaneswar. Her research interests include Computer Forensics, Cyber Security, Data Fusion, Data Mining, Big Data Analysis, Decision Mining and Machine Learning. In addition to research, she has guided many post-graduate and graduate students. She has published papers in many International Journals and conferences in repute. She has two Indian patents in her credit. Her professional activities include roles as editorial board member and/or reviewer of various journals. She is also editor of several books on the topic of Digital Forensics, Internet of Things, Machine Learning and Data Analytics to be published by leading publishers. She is a member of CSI, ISTE, OITS, ACM, IE, and IEEE.