#include <iostream>
#include <vector>
using namespace std;
void twoPointerSort(vector<int>& arr) {
int left = 0;
int right = arr.size() - 1;
while (left < right) {
if (arr[left] > arr[right]) {
// Swap elements
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
}
// Move pointers
left++;
right--;
}
}
int main() {
vector<int> arr = {5, 2, 8, 3, 1};
cout << "Original array: ";
for (int num : arr) {
cout << num << " ";
}
cout << endl;
twoPointerSort(arr);
cout << "Sorted array: ";
for (int num : arr) {
cout << num << " ";
}
cout << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCB0d29Qb2ludGVyU29ydCh2ZWN0b3I8aW50PiYgYXJyKSB7CiAgICBpbnQgbGVmdCA9IDA7CiAgICBpbnQgcmlnaHQgPSBhcnIuc2l6ZSgpIC0gMTsKCiAgICB3aGlsZSAobGVmdCA8IHJpZ2h0KSB7CiAgICAgICAgaWYgKGFycltsZWZ0XSA+IGFycltyaWdodF0pIHsKICAgICAgICAgICAgLy8gU3dhcCBlbGVtZW50cwogICAgICAgICAgICBpbnQgdGVtcCA9IGFycltsZWZ0XTsKICAgICAgICAgICAgYXJyW2xlZnRdID0gYXJyW3JpZ2h0XTsKICAgICAgICAgICAgYXJyW3JpZ2h0XSA9IHRlbXA7CiAgICAgICAgfQogICAgICAgIC8vIE1vdmUgcG9pbnRlcnMKICAgICAgICBsZWZ0Kys7CiAgICAgICAgcmlnaHQtLTsKICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICB2ZWN0b3I8aW50PiBhcnIgPSB7NSwgMiwgOCwgMywgMX07CgogICAgY291dCA8PCAiT3JpZ2luYWwgYXJyYXk6ICI7CiAgICBmb3IgKGludCBudW0gOiBhcnIpIHsKICAgICAgICBjb3V0IDw8IG51bSA8PCAiICI7CiAgICB9CiAgICBjb3V0IDw8IGVuZGw7CgogICAgdHdvUG9pbnRlclNvcnQoYXJyKTsKCiAgICBjb3V0IDw8ICJTb3J0ZWQgYXJyYXk6ICI7CiAgICBmb3IgKGludCBudW0gOiBhcnIpIHsKICAgICAgICBjb3V0IDw8IG51bSA8PCAiICI7CiAgICB9CiAgICBjb3V0IDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0=