Although it may not be the best array sorting algorithm, it’s good enough to sort small arrays. Here’s my implementation of the algorithm in C++ :
void selectionSort(int a[], int length)
{
//Three variables that will be used later
int min, minAt, temp;
for (int i = 0; i < length-1; i++) //Outer loop to go through the passes
{
//Suppose that the first element is the minimum
min = a[i];
minAt = i;
for (int j = i+1; j < length; j++) //Inner loop to go through the elements in each pass. Notice that we don’t touch previously processed elements
{
//If an element smaller than the minimum is encountered, then set the minimum to be equal to that element
if (min > a[j])
{
min = a[j];
minAt = j;
}
}
//Finally swap the current element with the minimum that was found
temp = a[i];
a[i] = a[minAt];
a[minAt] = temp;
}