# Sorting Algorithms

Includes common sorting algorithms along with details on how they work, advantages and disadvantages etc.

Below are the list of sorting algorithms published until now:

## Insertion Sort Algorithm

Insertion sort is an algorithm used to sort (or order) elements present in a list. It sorts elements present in the list by picking elements from the un-sorted list one by one, and inserts them to a new list at the correct place so as to keep the new list sorted.

## Bubble Sort Algorithm

Bubble sort is an algorithm used to sort (or order) elements present in a list. It sorts elements present in the list by iterating over each element in the list and moving it up by one position if it is greater than the next element.

## Selection Sort Algorithm

Selection sort is an algorithm used to sort (or order) elements present in a list. It sorts elements present in the list by iterating over the list/array several times and selects and places nth smallest element at the correct position.

## Merge Sort Algorithm

Merge Sort is an efficient algorithm used to order/sort a list of elements in ascending or descending order. It is a type of divide and conquer algorithm: Merge sort algorithm divides the list to be sorted into two halves, recursively sorts each list by using the same algorithm on both the lists and then merges both the sorted lists back into a single sorted list.

## Quick Sort Algorithm

Quick Sort is an efficient algorithm used to order/sort a list of elements in ascending or descending order. It is a type of divide and conquer algorithm: It partitions the list to be sorted into two portions and recursively sorts each portion.

## Counting Sort Algorithm

Counting sort is an algorithm used to sort (or order) elements present in a list. It counts the number of times each number appears in the input list. The algorithm then iterates through each number from smallest to largest and places them back in the input list.

For detailed info, visit https://en.wikipedia.org/wiki/Sorting_algorithm