**Introduction**

In this blog, I am going to explain about the Selection Sort algorithm. It is an in-place comparison sorting algorithm. It is also a major question in job interviews.

So first, I am going to explain Selection Sort algorithm. Then, I will be providing a C# code to execute it.

Please refer to the below link for my earlier blog on Bubble sort.

**The Selection Sort Algorithm**

This algorithm follows the concept of dividing the given array into two subarrays.

- The subarray of sorted elements
- The subarray of unsorted elements

The algorithm will find the minimum element in the unsorted subarray and put it into its correct position in the sorted subarray. Let us understand this with the help of an example.

Let us take an input array as - 8 5 7 3 1

The sorted output for this array is - 1 3 5 7 8

At n^{th} iteration, elements from position 0 to n-1 will be sorted.

Iterations | Input Array | Sorted Array | UnSorted Array |

Iteration 1 | 8 5 7 3 1 | 1 | 5 7 3 8 |

Iteration 2 | 1 5 7 3 8 | 1 3 | 7 5 8 |

Iteration 3 | 1 3 7 5 8 | 1 3 5 | 7 8 |

Iteration 4 | 1 3 5 7 8 | 1 3 5 7 | 8 |

Iteration 5 | 1 3 5 7 8 | 1 3 5 7 8 |

Hence, we got the sorted array in iteration 5.

**Time Complexity **

Every element needs to be compared to every other element and then get swapped to its correct position. After every iteration, the size of unsorted array reduces by 1.

Hence n swaps and (n*(n-1))/2 comparisons result in the complexity of Selection Sort as *O(n²). *

**Conclusion**

In this tutorial, we learned about the Selection Sort algorithm and its implementation using C#.

Please find the attached code for better understanding.