Algorithms

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 :

What is an Algorithm?

Overview:

  • Analysis of Algorithms
  • Searching
  • Sorting
  • Greedy Algorithms
  • Backtracking
  • Divide and Conquer
  • Branch and Bound
  • Dynamic Programming
  • Graph Algorithms

Analysis of Algorithms:

  1. Asymptotic Analysis
  2. Worst, Average and Best Cases
  3. Asymptotic Notations
  4. Asymptotic Analysis of Loops
  5. Space Complexity

Searching

  1. Linear Search
  2. Binary Search
  3. Jump Search
  4. Interpolation Search
  5. Exponential Search
  6. Ternary Search
  7. Binary Search preferred over Ternary Search

Sorting:

  1. Selection Sort
  2. Bubble Sort
  3. Insertion Sort
  4. Merge Sort
  5. Heap Sort
  6. Quicksort
  7. Radix Sort
  8. Bucket Sort
  9. Merge Sort for Linked Lists
  10. Sort a nearly sorted array
  11. Sort a K sorted array
  12. Iterative Quick Sort
  13. Quicksort on Singly Linked List
  14. Find k closest elements to a given value
  15. A Problem in Many Binary Search Implementations
  16. Search an element in an almost sorted array
  17. Sort array in wave form
  18. Binary Insertion Sort
  19. Insertion Sort for Singly Linked List
  20. Merge Sort for Doubly Linked List

Greedy Algorithms:

  1. Activity Selection Problem
  2. Kruskal Minimum Spanning Tree Algorithm
  3. Huffman Coding
  4. Prims Minimum Spanning Tree Algorithm
  5. Dijkstra Shortest Path Algorithm
  6. Job Sequencing Problem

Backtracking:

  1. Print all permutations of a given string
  2. Rat in a Maze
  3. N Queen Problem

Divide and Conquer:

  1. Introduction
  2. Write your own pow(a, n)
  3. Median of two sorted arrays
  4. Count Inversions
  5. Strassen’s Matrix Multiplication
  6. Quick Sort vs Merge Sort

Branch and Bound:

  1. Introduction with 0-1 Knapsack
  2. Job Assignment Problem
  3. N Queen Problem

Dynamic Programming:

  1. Longest Increasing Subsequence
  2. Longest Common Subsequence
  3. Min Cost Path
  4. Matrix Chain Multiplication
  5. 0-1 Knapsack Problem
  6. Longest Palindromic Subsequence

All explanations will be added soon….stay tuned