# Category: algorithms

## A tutorial on Dynamic Programming (DP) Approach

Dynamic programming is one of the algorithmic paradigm that solves many problems that are failed under other paradigms such as Divide and Conquer, Greedy approach etc. The idea

## Radix Sort – Explanation, Pseudocode and Implementation

Radix Sort is a non-comparative sorting algorithm with asymptotic complexity O(nd). It is one of the most efficient and fastest linear sorting algorithms. Radix sort was developed to

## Counting Sort – Explanation, Pseudocode and Implementation

Counting Sort is a linear sorting algorithm with asymptotic complexity O(n+k), which was found by Harold Seward in 1954. Counting Sort is very time efficient and stable algorithm

## Shell Sort Algorithm- Explanation, Implementation and Complexity

Shell Sort is a generalized version of insertion sort. It is an in–place comparison sort. Shell Sort is also known as diminishing increment sort, it is one of

## Heap Sort Algorithm – Explanation and Implementation

Heap Sort is comparison based sorting algorithm. It uses binary heap data structure. Heap Sort can be assumed as improvised version of Selection Sort where we find the

## Quick Sort Algorithm –Explanation, Implementation, and Complexity

Quick Sort also uses divide and conquer technique like merge sort, but does not require additional storage space. It is one of the most famous comparison based sorting

## Merge Sort Algorithm – Explanation, Implementation and Complexity

Merge Sort is a divide and conquers algorithm in which original data is divided into a smaller set of data to sort the array. In merge sort the

## Binary Insertion Sort – Explanation and Implementation

Binary Insertion sort is a variant of Insertion sorting in which proper location to insert the selected element is found using the binary search. Read Insertion Sort in