Selection Sort

Written by

Sonal Moga

Selection Sort

It is a sorting algorithm mainly performs an in-place comparison sort. Selection sort cannot be said to be very efficient on large lists.

Selection sort is a very simple algorithm and also has performance advantages over other sorting algorithms. Selection sort has a complexity of O(n²), where n is the number of items being sorted.

# Steps followed in the algorithm

• Find the minimum value in the list
• Swap it with the value at the first pos
• Repeat the process till the last value is read and swapped.

# Algorithm

``````// selection sort
for (i = 0; i < array; i++;)
{
pos = min_pos_search(list, i);
temp = list[pos];
list[pos] = list[i];
list[i] = temp;
````}````

Code:

``````//Program to show selection sort
#include<iostream>
using namespace std;
int smallestNum(int[], int);
int main()
{
int array[5] = {
20,
5,
12,
35,
48
};
int position, temp, iter = 0;
cout << "\n Input list of elements to be Sorted\n";
for (int i = 0; i < 5; i++)
{
cout &lt;&lt; array[i] &lt;&lt; "\t";

}
for (int i = 0; i < 5; i++)
{
position = smallestNum(array, i);

temp = array[i];

array[i] = array[position];

array[position] = temp;

iter++;

}
cout << "\n Sorted list of elements is\n";
for (int i = 0; i < 5; i++)
{
cout &lt;&lt; array[i] &lt;&lt; "\t";

}
cout << "\nNumber of iterations required to sort the array: " << iter;
return 0;
}
int smallestNum(int array[], int i)
{
int small, pos, j;
small = array[i];
pos = i;
for (j = i + 1; j < 5; j++)
{
if (array[j] &lt; small)

{

small = array[j];

pos = j;

}

}
return pos;
````}````