#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void twoPointerSort(vector<int>& arr) {
int n = arr.size();
int left = 0;
int right = n - 1;
// Sort the array using two pointers
while (left < right) {
if (arr[left] > arr[right]) {
// Swap elements
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
}
// Move left pointer to the next element
left++;
// Move right pointer to the previous element
right--;
}
}
int main() {
vector<int> arr = {4, 1, 100, 10, 0};
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;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCB0d29Qb2ludGVyU29ydCh2ZWN0b3I8aW50PiYgYXJyKSB7CiAgICBpbnQgbiA9IGFyci5zaXplKCk7CiAgICBpbnQgbGVmdCA9IDA7CiAgICBpbnQgcmlnaHQgPSBuIC0gMTsKCiAgICAvLyBTb3J0IHRoZSBhcnJheSB1c2luZyB0d28gcG9pbnRlcnMKICAgIHdoaWxlIChsZWZ0IDwgcmlnaHQpIHsKICAgICAgICBpZiAoYXJyW2xlZnRdID4gYXJyW3JpZ2h0XSkgewogICAgICAgICAgICAvLyBTd2FwIGVsZW1lbnRzCiAgICAgICAgICAgIGludCB0ZW1wID0gYXJyW2xlZnRdOwogICAgICAgICAgICBhcnJbbGVmdF0gPSBhcnJbcmlnaHRdOwogICAgICAgICAgICBhcnJbcmlnaHRdID0gdGVtcDsKICAgICAgICB9CiAgICAgICAgLy8gTW92ZSBsZWZ0IHBvaW50ZXIgdG8gdGhlIG5leHQgZWxlbWVudAogICAgICAgIGxlZnQrKzsKICAgICAgICAvLyBNb3ZlIHJpZ2h0IHBvaW50ZXIgdG8gdGhlIHByZXZpb3VzIGVsZW1lbnQKICAgICAgICByaWdodC0tOwogICAgfQp9CgppbnQgbWFpbigpIHsKICAgIHZlY3RvcjxpbnQ+IGFyciA9IHs0LCAxLCAxMDAsIDEwLCAwfTsKCiAgICBjb3V0IDw8ICJPcmlnaW5hbCBhcnJheTogIjsKICAgIGZvciAoaW50IG51bSA6IGFycikgewogICAgICAgIGNvdXQgPDwgbnVtIDw8ICIgIjsKICAgIH0KICAgIGNvdXQgPDwgZW5kbDsKCiAgICB0d29Qb2ludGVyU29ydChhcnIpOwoKICAgIGNvdXQgPDwgIlNvcnRlZCBhcnJheTogIjsKICAgIGZvciAoaW50IG51bSA6IGFycikgewogICAgICAgIGNvdXQgPDwgbnVtIDw8ICIgIjsKICAgIH0KICAgIGNvdXQgPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQ==