57 uint64_t current_position = 0) {
58 if (current_position + 1 == in_arr.size()) {
59 return current_position;
61 uint64_t answer =
findMinIndex(in_arr, current_position + 1);
62 if (in_arr[current_position] < in_arr[answer]) {
63 answer = current_position;
77 uint64_t current_position = 0) {
78 if (current_position == in_arr.size()) {
81 uint64_t min_element_idx =
82 selection_sort_recursive::findMinIndex(in_arr, current_position);
83 if (min_element_idx != current_position) {
84 std::swap(in_arr[min_element_idx], in_arr[current_position]);
98 std::vector<uint64_t> array1 = {0, 1, 1, 2};
99 std::cout <<
"1st test... ";
100 sorting::selection_sort_recursive::selectionSortRecursive(array1);
101 assert(std::is_sorted(std::begin(array1), std::end(array1)));
102 std::cout <<
"passed" << std::endl;
105 std::vector<uint64_t> array2 = {1, 0, 0, 1, 1, 0, 2, 1};
106 std::cout <<
"2nd test... ";
107 sorting::selection_sort_recursive::selectionSortRecursive(array2);
108 assert(std::is_sorted(std::begin(array2), std::end(array2)));
109 std::cout <<
"passed" << std::endl;
112 std::vector<uint64_t> array3 = {1, 1, 0, 0, 1, 2, 2, 0, 2, 1};
113 std::cout <<
"3rd test... ";
114 sorting::selection_sort_recursive::selectionSortRecursive(array3);
115 assert(std::is_sorted(std::begin(array3), std::end(array3)));
116 std::cout <<
"passed" << std::endl;
119 std::vector<uint64_t> array4 = {2, 2, 2, 0, 0, 1, 1};
120 std::cout <<
"4th test... ";
121 sorting::selection_sort_recursive::selectionSortRecursive(array4);
122 assert(std::is_sorted(std::begin(array4), std::end(array4)));
123 std::cout <<
"passed" << std::endl;