// Mr. Minich
// CMPSC 101
// Ch. 10 Demo Program #9
// December 4, 2002
// Purpose - an example of a selection sort
#include <iostream>
#include <time.h>
using namespace std;
void sort(int numbers[], int lengthOfArray);
int indexOfSmallest(int numbers[], int startPosition, int lengthOfArray);
int main()
{
int numbers[5];
int i = 0;
srand(time(0));
numbers[0] = rand();
numbers[1] = rand();
numbers[2] = rand();
numbers[3] = rand();
numbers[4] = rand();
cout << "The original numbers in the array are: \n";
for (i = 0; i < 5; i++)
{
cout << numbers[i] << '\t';
}
sort(numbers, 5);
cout << "\n\nThe numbers in ascending order are: \n";
for (i = 0; i < 5; i++)
{
cout << numbers[i] << '\t';
}
cout << endl << endl;
return 0;
}// end of main
void sort(int numbers[], int lengthOfArray)
{
int positionOfSmallest = 0;
int i = 0;
int temp = 0;
for (i = 0; i < lengthOfArray; i++)
{
positionOfSmallest = indexOfSmallest(numbers, i, lengthOfArray);
temp = numbers[i]; // swapping positions
numbers[i] = numbers[positionOfSmallest];
numbers[positionOfSmallest] = temp;
}
}// end of sort
int indexOfSmallest(int numbers[], int startPosition, int lengthOfArray)
{
int min = numbers[startPosition];
int indexOfMin = startPosition;
int i = 0;
for (i = startPosition + 1; i < lengthOfArray; i++)
{
if (numbers[i] < min)
{
min = numbers[i];
indexOfMin = i;
}
}
return indexOfMin;
}// end of indexOfSmallest