# Sorting Algorithms

Introduction and Implementation of Sorting Algorithms using C++.

Sorting is the process of organizing an array or a data structure so that each item and its successor satisfies a prescribed relationship. In this article, I will introduce you to the concept of sorting algorithms in the C++ programming language.

## Introduction to Sorting

Sorting algorithms work with values, such as integers and reals, or more complex types, such as student records or dictionary entries. In both cases, the order of the items is based on the value of a sort key.

The key is the value itself when sorting simple types, or it can be a specific component or a combination of components when sorting complex types. There are many examples of sorting in everyday life.

Consider listings in a phone book, definitions in a dictionary, or terms in an index, all of which are alphabetized to make it easier to find an entry. The efficiency of some algorithms like search algorithms can be improved when working with sorted arrays.

Another common use of sorting is to present data in an organized manner. For example, we may want to sort a class list by student name, sort a list of cities by zip code or population, sort SAT scores or list entries on a bank statement by date.

## Sorting Algorithms using C++

Sorting is one of the most studied problems in computer science and extensive research has been done in this area, resulting in many different algorithms. There are three types of sorting algorithms:

1. Selection Sort
2. Bubble Sort
3. Insertion Sort

#### Selection Sort

Selection Sort is sorting by comparison in place. It has an O (n 2) complexity, which makes it inefficient on large lists, and generally performs less well than the similar insert sort. Sorting by selection is known for its simplicity and also has performance advantages over more complex algorithms in some situations.

Sorting by selection finds the minimum value, replaces it with the value in the first position, and repeats these steps for the rest of the list. It does not do more than n swaps, so it is useful where the swap is very expensive. You can learn the implementation of Selection Sort in C++ from here.

#### Bubble Sort

Bubble sort is a simple sorting algorithm. The algorithm starts at the start of the data set. It compares the first two items, and if the first is greater than the second, it swaps them.

Bubble Sort continues to do this for each pair of adjacent items at the end of the dataset. It then starts over with the first two elements, repeating itself until no swaps have occurred on the last pass. You can learn the implementation of this sorting algorithm in C++ from here.

#### Insertion Sort

Insertion sort is a simple sorting algorithm that is relatively efficient for small arrays and most sorted arrays and is often used as part of more sophisticated algorithms.

Insertion sorting works by taking the array elements one by one and inserting them in their correct position into a new sorted array. You can learn the implementation of this sorting algorithm in C++ from here. 