Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,938 questions

51,875 answers

573 users

How to rearrange a given sorted array in maximum minimum form with C++

2 Answers

0 votes
#include <iostream>
#include <vector>

void RearrangeArrayMaxMinForm(int array[], int size) {
    std::vector<int> v(size, 0);
    
    int left = 0, right = size - 1; 
    int odd_index = true; 

    for (int i = 0; i < size; i++) {
        if (odd_index) {
            v[i] = array[right--];
        }
        else {
            v[i] = array[left++];
        }
        odd_index = !odd_index;
    }
    
    for (int i = 0; i < size; i++) {
        array[i] = v[i];
    }
}

void PrintArray(int array[], int size) {
    for (int i = 0; i < size; i++) {
        std::cout << array[i] << " ";
    }
}

int main()
{
    int array[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
    
    int size = sizeof(array) / sizeof(array[0]);

    RearrangeArrayMaxMinForm(array, size);
    
    PrintArray(array, size);
}



/*
run:

9 1 8 2 7 3 6 4 5 

*/

 



answered Sep 9, 2022 by avibootz
0 votes
#include <iostream>

void ShiftArrayToRightFromIndex(int arr[], int size, int index) {
    int temp = arr[size - 1];

    for (int i = size - 1; i > index; i--) {
        arr[i] = arr[i - 1];
    }

    arr[index] = temp;
}

void RearrangeArrayMaxMinForm(int arr[], int size) {
    for (int i = 0; i < size; i += 2)
        ShiftArrayToRightFromIndex(arr, size, i);
}

void PrintArray(int array[], int size) {
    for (int i = 0; i < size; i++) {
        std::cout << array[i] << " ";
    }
}

int main()
{
    int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

    int size = sizeof(arr) / sizeof(arr[0]);

    RearrangeArrayMaxMinForm(arr, size);

    PrintArray(arr, size);
}




/*
run:

9 1 8 2 7 3 6 4 5

*/

 



answered Sep 10, 2022 by avibootz
...