A lot of beginners and experienced programmers avoid learning Data Structures and Algorithms because it’s complicated and they think that there is no use of all the above stuff in real life.
Data structures and algorithms play a major role in implementing software and in the hiring process as well. A lot of students and professionals have this question that why these companies’ interviews are focused on DSA instead of language/frameworks/tools specific questions?
- Read this before you start solving problems on Leetcode (Prep Work) Link of Blog
- Why Engineers need to master Data Structures and Algorithms ? Link of Blog
- The Role Of Data Structure And Algorithms In Programming Link of Blog
-
Data Structures
-
Algorithmic complexity / Big-O / Asymptotic analysis It is a very important topic and will come in the path very frequetly
-
Basic Topic first Before starting DSA
- If else and nested Loops
- Loops (For loop, while loop and Do while loop)
- Functions or Methods
- Parameters and Function scope
- shadowing and function overloading
- Arrays
- How does arrays works in java and C++
- Java discontinuous memory allocation
- dynamic memory allocation
- to.string()method
- Dynamic arrays or ArrayList
- 2D arrays
- properties of arrays
- Strings
- Bitwise Operators
- C++ STL
- Basic maths for DSA
-
Searching
- Linear Search
- Binery search
- Bineary search in 2D arrays too
-
Pointers
- Double Pointers
- reference variable
- macro and global variable and Inline functions
-
Bitwise Operators
-
Number system
-
Bitwise type
- And Operator
- OR Operator
- XOR Operator
- Complement Operator
- Left shift
- Right shift
-
2's Compliment
-
Negative Binary Number
-
range of Binary Numbers and Formula too
-
-
Recursion
- What is Recursion
- Why we use recursion
- Iteration vs Recursion
- Advantage of recursion
- Advantage of Iteration
- Backstracking -> An Improvement of Brute force approch
- Recursion subset
- recursion with strings
-
Sorting
- Selection Sort
- Bubble Sort
- Insertion Sort
- Merge Sort
- Quick Sort