Website Summary Files Commits Branches @commit @diff @stats
path: root / pract_SI / Pract. 05 / Solutions / task2.cpp
diff options
context:
space:
mode:
1 files changed, 27 insertions, 0 deletions
-rw-r--r--pract_SI/Pract. 05/Solutions/task2.cpp27
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