diff options
Add task2 solutions
1 files changed, 27 insertions, 0 deletions
| -rw-r--r-- | pract_SI/Pract. 05/Solutions/task2.cpp | 27 |
diff --git a/pract_SI/Pract. 05/Solutions/task2.cpp b/pract_SI/Pract. 05/Solutions/task2.cpp new file mode 100644 index 0000000..0d48adc --- /dev/null +++ b/pract_SI/Pract. 05/Solutions/task2.cpp @@ -0,0 +1,27 @@ +void swap(int &a, int &b) +{ + int temp = a; + a = b; + b = temp; +} + +void sortNumbers(int *arr, size_t size) +{ + int leftNumber = 0, rightNumber = size - 1; + + while (leftNumber < rightNumber) + { + while (arr[leftNumber] % 2 == 0 && leftNumber < rightNumber) + leftNumber++; + + while (arr[rightNumber] % 2 == 1 && leftNumber < rightNumber) + rightNumber--; + + if (leftNumber < rightNumber) + { + swap(arr[leftNumber], arr[rightNumber]); + leftNumber++; + rightNumber--; + } + } +}
\ No newline at end of file |
