summaryrefslogtreecommitdiffstats
path: root/C++/SortArrayExample1/SortArrayTemplate1.cpp
blob: 2d13d6509caeb6e0b4e8237d526b8fe68102052e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
// Sort Array Example
// Ch 8
/*
The selection sort algorithm rearranges a list by selecting an element in the list and moving it
to its proper position. This algorithm finds the location of the smallest element in the unsorted
portion of the list and moves it to the top of the unsorted portion of the list. The first time,
we locate the smallest item in the entire list. The second time, we locate the smallest item in
the list starting from the second element in the list, and so on.
*/

#include <iostream>

using namespace std;

// Constant declarations
const int ARRAY_SIZE = 8;

int main()
{
	// Variable declarations
	int list[ARRAY_SIZE] = {16, 30, 24, 7, 62, 45, 5, 55};
	int smallestIndex;
	int temp;
	// Program title and description
	cout << "Selection Sort Example" << endl << endl;

	// Output original unsorted array
	for ( int i = 0; i < ARRAY_SIZE; i++) {
		cout << list[i] << endl;
	}
	cout << endl;
	
	// Outer FOR loop controls current location of the smallest index
	// notice that you iterate to one LESS than the array size
	
	for ( int i = 0; i < ARRAY_SIZE - 1; i++ ) {
		
	

	
		smallestIndex = i; // Find the location of the smallest element
			  // sets smallest value to first item in array
		// Inner FOR loop iterates through the array to compare two values
		
		for (int currentLocation = i+1; currentLocation < ARRAY_SIZE; currentLocation++) {
			// ...if the current value is less than the current smallest value... 
			if (list[currentLocation] < list[smallestIndex]) {
				// ...then set the smallest value to the current value
				smallestIndex = currentLocation;
			}
		}

		// Move the smallest element to the beginning of the unsorted list - note 3 variables needed

		temp = list[smallestIndex];
		list[smallestIndex] = list[i];
		list[i] = temp;
	}	

	// Output sorted array
	
	cout << "Sorted Array: " << endl;
	for ( int i = 0; i < ARRAY_SIZE; i++) {
		cout << list[i] << endl;
	}
	cout << endl;
	
	

	return 0;
}