Answer:
It helps you understand stuff faster
Explanation:
Refer to the attachment!!
The Treaty of Paris, signed in Paris by representatives of King George III of Great Britain and representatives of the United States of America on September 3, 1783, ended the American Revolutionary War. Hope this helps :)
Given an array of integers (both odd and even), sort them in such a way that the first part of the array contains odd numbers sorted in descending order, rest portion contains even numbers sorted in ascending order.
Explanation:
- Partition the input array such that all odd elements are moved to left and all even elements on right. This step takes O(n).
- Once the array is partitioned, sort left and right parts individually. This step takes O(n Log n).
#include <bits/stdc++.h>
using namespace std;
void twoWaySort(int arr[], int n)
{
int l = 0, r = n - 1;
int k = 0;
while (l < r) {
while (arr[l] % 2 != 0) {
l++;
k++;
}
while (arr[r] % 2 == 0 && l < r)
r--;
if (l < r)
swap(arr[l], arr[r]);
}
sort(arr, arr + k, greater<int>());
sort(arr + k, arr + n);
}
int main()
{
int arr[] = { 1, 3, 2, 7, 5, 4 };
int n = sizeof(arr) / sizeof(int);
twoWaySort(arr, n);
for (int i = 0; i < n; i++)
cout << arr[i] << " ";
return 0;
}