Selection Sort
An elementary sorting technique which finds the smallest element in the array and then exchanges it with the element in the first position
1 #include <iostream> 2 3 class SelectionSort 4 { 5 public: 6 SelectionSort(); 7 ~SelectionSort(); 8 9 void sort(int arr[], int size); 10 11 private: 12 void exchange(int &x, int &y); 13 }; 14 15 //Constructor 16 SelectionSort::SelectionSort() {} 17 18 //Destructor 19 SelectionSort::~SelectionSort() {} 20 21 void SelectionSort::sort(int arr[], int size) 22 { 23 for(int outerLoopIdx = 0; outerLoopIdx < size - 1; ++outerLoopIdx) 24 { 25 int min = outerLoopIdx; 26 for(int innerLoopIdx = outerLoopIdx + 1; innerLoopIdx < size; ++innerLoopIdx) 27 { 28 if(arr[min] > arr[innerLoopIdx]) 29 { 30 min = innerLoopIdx; 31 } 32 } 33 exchange(arr[outerLoopIdx], arr[min]); 34 } 35 } 36 37 void SelectionSort::exchange(int &x, int &y) 38 { 39 int t = x; 40 x = y; 41 y = t; 42 } 43 44 void print(int arr[], int size) 45 { 46 for(int i = 0; i < size; ++i) 47 std::cout << arr[i] << " "; 48 } 49 50 int main() 51 { 52 int arr[] = { 10, 65, 35, 25, 15, 75, 85, 45, 65 }; 53 SelectionSort ss; 54 ss.sort(arr, 9); 55 print(arr, 9); 56 }
Output:
No comments :
Post a Comment