Problem Solving in Data Structures & Algorithms Using Python
by Hemant Jain
Publisher Finelybook 出版社: Hemant Jain (April 9, 2022)
Language 语言: English
pages 页数: 536 pages
ISBN-10 书号: 935620814X
ISBN-13 书号: 9789356208148
GitHub Repositories for these books.
This book introduces you to the world of data structures and algorithms. Data structures define the way in which data is arranged in memory for fast and efficient access, while algorithms are a set of instruction to solve problems by manipulating these data structures.
Designing an efficient algorithm is a very important skill that all software companies, e.g., Microsoft, google, Facebook etc. pursues. Most of the interviews for these companies are focused on knowledge of data-structures and algorithms. They look for how candidates use concepts of data structures and algorithms to solve complex problems efficiently. Apart from knowing, a programming language, you also need to have good command of these key computer fundamentals to not only qualify the interview but also excel in your jobs as a software engineer.
This book assumes that you are a C language developer. You are not an expert in C language, but you are well familiar with concepts of classes, functions, arrays, pointers, and recursion. At the start of this book, we will be looking into Complexity Analysis followed by the various data structures and their algorithms. We will be looking into Linked-List, Stack, Queue, Trees, Heap, Hash-Table and Graphs. We will also be looking into Sorting, Searching techniques.
In the last few chapters, we will be looking into various algorithmic techniques. Such as, Brute-Force algorithms, Greedy algorithms, Divide and Conquer algorithms, Dynamic Programming, and Backtracking.
Table of contents
Chapter 0: How to use this book.
Chapter 1: Algorithms Analysis
Chapter 2: Approach to solve algorithm design problems
Chapter 3: Abstract Data Type & C# Collections
Chapter 4: Searching
Chapter 5: Sorting
Chapter 6: Linked List
Chapter 7: Stack
Chapter 8: Queue
Chapter 9: Tree
Chapter 10: Priority Queue
Chapter 11: Hash-Table
Chapter 12: Graphs
Chapter 13: String Algorithms
Chapter 14: Algorithm Design Techniques
Chapter 15: Brute Force Algorithm
Chapter 16: Greedy Algorithm
Chapter 17: Divide & Conquer
Chapter 18: Dynamic Programming
Chapter 19: Backtracking
Chapter 20: Complexity Theory