# Tag Algorithm

## Binary Search

Binary search is the most popular and efficient searching algorithm having an average time complexity of O(log N). Like linear search, it is used to find the position of a particular item in the list.

## 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.

## Linear Search

Linear search is used to find a particular element in a list or collection of items. Target element is compared sequentially with each element of a collection until it is found. Otherwise it will traverse through that list until it reaches to the end of the list.