An Algorithms is a step by step procedure for solving a problem or a finite set of sequence of specified actions for solving a problem or sequence of steps performed by computer to solve a problem. You can define it as easy you can but the sole purpose should remain same.
Algorithms are widely used in IT industry for processing data, calculation, modifying data and much more. Algorithms can be explained in any language, from natural languages like English to programming languages and also using flowcharts.
Flowcharts: A flowchart is the graphical representation of an algorithm. Flow chart contain various boxes connected with arrows in order to illustrates a solution model to a given problem.
In this guide you will study various algorithms like Analysis of Algorithms, Searching, Sorting, Greedy Algorithms, Divide and Conquer, Graph Algorithms, Randomized Algorithms, Branch and Bound etc and their practical approach in various languages.
Algorithms Topics :
Overview:
- Analysis of Algorithms
- Searching
- Sorting
- Greedy Algorithms
- Backtracking
- Divide and Conquer
- Branch and Bound
- Dynamic Programming
- Graph Algorithms
Analysis of Algorithms:
- Asymptotic Analysis
- Worst, Average and Best Cases
- Asymptotic Notations
- Asymptotic Analysis of Loops
- Space Complexity
Searching
- Linear Search
- Binary Search
- Jump Search
- Interpolation Search
- Exponential Search
- Ternary Search
- Binary Search preferred over Ternary Search
Sorting:
- Selection Sort
- Bubble Sort
- Insertion Sort
- Merge Sort
- Heap Sort
- Quicksort
- Radix Sort
- Bucket Sort
- Merge Sort for Linked Lists
- Sort a nearly sorted array
- Sort a K sorted array
- Iterative Quick Sort
- Quicksort on Singly Linked List
- Find k closest elements to a given value
- A Problem in Many Binary Search Implementations
- Search an element in an almost sorted array
- Sort array in wave form
- Binary Insertion Sort
- Insertion Sort for Singly Linked List
- Merge Sort for Doubly Linked List
Greedy Algorithms:
- Activity Selection Problem
- Kruskal Minimum Spanning Tree Algorithm
- Huffman Coding
- Prims Minimum Spanning Tree Algorithm
- Dijkstra Shortest Path Algorithm
- Job Sequencing Problem
Backtracking:
- Print all permutations of a given string
- Rat in a Maze
- N Queen Problem
Divide and Conquer:
- Introduction
- Write your own pow(a, n)
- Median of two sorted arrays
- Count Inversions
- Strassen’s Matrix Multiplication
- Quick Sort vs Merge Sort
Branch and Bound:
- Introduction with 0-1 Knapsack
- Job Assignment Problem
- N Queen Problem
Dynamic Programming:
- Longest Increasing Subsequence
- Longest Common Subsequence
- Min Cost Path
- Matrix Chain Multiplication
- 0-1 Knapsack Problem
- Longest Palindromic Subsequence
All explanations will be added soon….stay tuned