#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 = {49,16,0,4,25};
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+IGFyciA9IHs0OSwxNiwwLDQsMjV9OwoKICAgIGNvdXQgPDwgIk9yaWdpbmFsIGFycmF5OiAiOwogICAgZm9yIChpbnQgbnVtIDogYXJyKSB7CiAgICAgICAgY291dCA8PCBudW0gPDwgIiAiOwogICAgfQogICAgY291dCA8PCBlbmRsOwoKICAgIHR3b1BvaW50ZXJTb3J0KGFycik7CgogICAgY291dCA8PCAiU29ydGVkIGFycmF5OiAiOwogICAgZm9yIChpbnQgbnVtIDogYXJyKSB7CiAgICAgICAgY291dCA8PCBudW0gPDwgIiAiOwogICAgfQogICAgY291dCA8PCBlbmRsOwoKICAgIHJldHVybiAwOwp9