# Category Sorting Algorithms

## Heap Sort

Heap sort is based exclusively upon a binary heap data structure, where we find the largest element and sort it to the end of an unsorted collection. We use the properties of a complete binary tree to sort our collection efficiently.

## Quick Sort

Quick sort uses the divide-and-conquer approach based on the idea of choosing a pivot element from the array and partitioning the array around it where the Left side of pivot contains elements that are smaller than the pivot and Right side contains elements greater than the pivot.

## Selection Sort

An in-place sorting algorithm that finds min. element in each cycle and puts it in appropriate position in list.

## Merge Sort

A Divide and Conquer algorithm that divides the list in two sub-lists and calls itself onto them recursively till it can't be split and merges them afterwards in a sorted manner.

## Insertion Sort

An algorithm that finds correct position for one element in each cycle. i.e, the position to which it belongs in sorted array.

## Bubble Sort

An in-place sorting algorithm that finds max. element in each cycle and puts it in appropriate position in list by performing swapping adjacent elements.