ronith
5/29/2018 - 8:28 PM

rearrange array such that elements at even positions are greater than all elements before it and elements at odd positions are less than k

#include <iostream>
#include <bits/stdc++.h>
using namespace std;

int main(){
    int n;
    cout << "No.of elements \n";
    cin >> n;
    int a[n];
    cout << "Enter the elements \n";
    for (int i = 0;i<n;i++)
        cin >> a[i];

    for (int i = 0;i<n;i++)
        cout << a[i] << "  ";
    cout << "\n";
    sort(a,a+n);

    int b[n];

    if (n%2 == 0){
        for (int i = 0; i <= (n-2)/2; i++)
            b[2*i] = a[n/2 -i -1];
        for (int i = 0; i < n/2; i++)
            b[2*i+1] = a[n/2+i];
    }
    else{
        for (int i = 0; i <= n/2; i++)
            b[2*i] = a[n/2 -i ];
        for (int i = 0; i < n/2; i++)
            b[2*i+1] = a[n/2+i+1];
    }
    for (int i = 0;i<n;i++)
        cout << b[i] << "  ";
}