# C++ Exercises: Rearrange a given sorted array of positive integers

## C++ Array: Exercise-15 with Solution

Write a C++ program to rearrange a given sorted array of positive integers.

Note: In final array, first element should be maximum value, second minimum value, third second maximum value, fourth second minimum value, fifth third maximum and so on.

**Sample Solution:**

**C++ Code :**

```
#include <iostream>
using namespace std;
void rearrange_max_min(int nums[], int n)
{
int temp[n];
int small_num=0, large_num=n-1;
int result = true;
for (int i=0; i<n; i++)
{
if (result)
temp[i] = nums[large_num--];
else
temp[i] = nums[small_num++];
result = !result;
}
for (int i=0; i<n; i++)
nums[i] = temp[i];
}
int main()
{
int nums[] = {0, 1, 3, 4, 5, 6, 7, 8, 10};
int n = sizeof(nums)/sizeof(nums[0]);
cout << "Original array: ";
for (int i=0; i < n; i++)
cout << nums[i] <<" ";
rearrange_max_min(nums, n);
printf("\nArray elements after rearranging: ");
for (int i=0; i < n; i++)
cout << nums[i] <<" ";
return 0;
}
```

Sample Output:

Original array: 0 1 3 4 5 6 7 8 10 Array elements after rearranging: 10 0 8 1 7 3 6 4 5

**Flowchart: **

**C++ Code Editor:**

** Contribute your code and comments through Disqus.**

**Previous:** Write a C++ program to separate 0s and 1s from a given array of values 0 and 1.

**Next:** Write a C++ program to sort a given array of 0s, 1s and 2s. In the final array put all 0s first, then all 1s and all 2s in last.

**What is the difficulty level of this exercise?**

Test your Programming skills with w3resource's quiz.

## C++ Programming: Tips of the Day

**Can I assume (bool)true == (int)1 for any C++ compiler?**

According to the standard, you should be safe with that assumption. The C++ bool type has two values - true and false with corresponding values 1 and 0.

The thing to watch about for is mixing bool expressions and variables with BOOL expression and variables. The latter is defined as FALSE = 0 and TRUE != FALSE, which quite often in practice means that any value different from 0 is considered TRUE.

A lot of modern compilers will actually issue a warning for any code that implicitly tries to cast from BOOL to bool if the BOOL value is different than 0 or 1

Ref: https://bit.ly/3PWhs5N

**Exercises: Weekly Top 12 Most Popular Topics**- Pandas DataFrame: Exercises, Practice, Solution
- Conversion Tools
- JavaScript: HTML Form Validation
- SQL Exercises, Practice, Solution - SUBQUERIES
- C Programming Exercises, Practice, Solution : For Loop
- Python Exercises, Practice, Solution
- Python Data Type: List - Exercises, Practice, Solution
- C++ Basic: Exercises, Practice, Solution
- SQL Exercises, Practice, Solution - exercises on Employee Database
- SQL Exercises, Practice, Solution - exercises on Movie Database
- SQL Exercises, Practice, Solution - exercises on Soccer Database
- C Programming Exercises, Practice, Solution : Recursion