What are Data Structures and Algorithm and why are they important?
In simple terms, Data Structures are simply a way to store the data in a format that is easy to organise and retrieve.
Algorithms are simply a function or a ways to use data structure to write our program.
But, does it mean, if you study all the data structure and algorithms, you will become good in programming?
It might not be true. Because, in addition to knowing about DS and Algo, you need to know how to apply them to make the program more efficiently.
Below index has around 85+ topics on DS and Algo that will make you an expert in programming. It took me almost 6 months and many sleepless nights to complete all the articles. Any suggestions are always welcome.
Chapter 1: Introduction to algorithm and their types.
Chapter 2: Performance analysis of an algorithm: Space Complexity
Chapter 3: Performance analysis of an algorithm: Time Complexity
Chapter 4: Introduction to Asymptotic Notations
Chapter 5: Asymptotic Notation Big O
Chapter 6: Asymptotic Notation Big Omega and Theta
Sorting! First question arises, why do we need sorting when there are various inbuilt sorting functions?
From the point of interview, it is important because, the interviewer might ask you to sort when a un-sorted array is given.
About the inbuilt functions, they are efficient for less number of input, but when the input size increases, we need to implement our custom sorting algorithms. For example, consider big companies with multiple complex data, those needs to be sorted according to the location, time. Inbuilt functions will not be usable here. Hence there is a need to implement sorting algorithms.
Below are list of sorting algorithms that we shall be studying:
Sorting Algorithm 1: Bubble sort
Sorting Algorithm 2: Selection Sort
Sorting Algorithm 3: Insertion Sort
Sorting Algorithm 4: Merge Sort
Sorting Algorithm 5: Quick Sort
Sorting Algorithm 6: Pigeonhole Sort
Sorting Algorithm 7: 3-Way Quicksort (Dutch National Flag) algorithm
Sorting Algorithm 8: Cocktail Sort
Sorting Algorithm 9: Radix Sort
Sorting Algorithm 10: Bucket Sort
Sorting Algorithm 11: Counting Sort
Sorting Algorithm 12: Shell Sort
Sorting algorithm 13: Topological Sort
Sorting algorithm 14: Comb Sort
Searching Algorithm 1: Linear Search
Searching Algorithm 2: Binary Search
Searching Algorithm 3: Jump Search
Searching Algorithm 4: Interpolation Search
Searching Algorithm 5: Exponential Search
Searching Algorithm 6: Ternary Search
Data structure tutorial 1: Introduction to Stack Data structure and Implementation using arrays
Data structure tutorial 3: Singly Linked List explanation with Implementation in C
Data structure tutorial 4: Doubly Linked List [DLL] with explanation with implementation in C++
Data structure tutorial 5: Circular Singly Linked List with explanation with implementation in C
Data structure tutorial 6: Circular Doubly Linked List explanation and Implementation in C++
Data structure tutorial 8: Queue Data Structure implementation using linked list in C
Data structure tutorial 10: Implementation of Circular Queue using Linked List in C++
Tree data structure tutorial 1. Tree Data Structure Introduction
Tree data structure tutorial 2. Introduction to Binary Tree
Tree data structure tutorial 3. Binary Tree Traversal
Tree data structure tutorial 4. Binary Search Tree Introduction
Tree data structure tutorial 5. Implementation of BST in C++
Tree data structure tutorial 6. Implementation of Binary tree in C++
Tree data structure tutorial 7. TRIE Data structure
Tree data structure tutorial 8. Heaps
Tree data structure tutorial 9. Priority Queue
Tree data structure tutorial 10. AVL tree introduction and it’s implementation
Tree data structure tutorial 11. Introduction to Segment Trees
Tree data structure tutorial 12: Performing minimum Range query in Segment Tree and implementation
Tree data structure tutorial 13. Lazy propagation of segment trees with example
Tree data structure tutorial 14. Fenwick trees and implementation
Graph data structure tutorial 1. Graph Introduction
Graph data structure tutorial 2. Graph Representation Adjacency Matrix
Graph data structure tutorial 3. Graph Representation Adjacency List and implementation in C++
Graph data structure tutorial 4. Graph Traversal
Graph data structure tutorial 5. Graph Traversal using Stack and Queue
Graph data structure tutorial 6. Bipartite graph
Graph data structure tutorial 7. Graph colouring problem
Graph data structure tutorial 8. Isomorphic Graph
Graph data structure tutorial 9. Euler Graph
Graph data structure tutorial 10. Hamiltonian Graph
Introduction to Brute force approach with example
Introduction to Recursion with stack frame and recursion tree
Introduction to Dynamic Programming with example
Introduction to Backtracking Approach with example
Introduction to Greedy Technique with example
Introduction to Two pointer approach with example code
Mnimum Spanning Tree tutorial 1. Introduction to minimum spanning tree
Minimum Spanning Tree tutorial 2: Introduction to Kruskal’s algorithm and Implementation
Minimum Spanning Tree tutorial 3. Introduction to prims algorithm and its implementation
Finding shortest path algorithm tutorial 2. Introduction to Dijkstra’s Algorithm with implementation
String matching algorithms tutorial 2: Introduction to Rabin Karp algorithm with implementation.
String matching algorithms tutorial 3: Introduction to Boyer Moore algorithm and implementation
Knapsack Problem tutorial 1: Fractional knapsack tutorial with implementation
Knapsack Problem tutorial 2: 0/1 knapsack problem tutorial with implementation
Introduction to P, NP, NP hard, NP Complete
Kadane Algorithm explanation with implementation in C++
Travelling salesman problem with implementation
Total number of ways to get denomination of coins.
Job Sequencing with deadline Problem