Hello astropiggy!
Feel free to ask any question!
I’ll try my best to answer them!
in order to delete answers from your questions, you have to rate them one star , or at least that's what I do, and then report it and then brainly will determine if it's something that needs to be taken down or not
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;
}
1. change your pw every month.
2. dont give out your pw.
I hope this helps and have a wonderful day!!
<3