w3resource

C++ Exercises: Sort a given unsorted array of integers, in wave form

C++ Array: Exercise-9 with Solution

Write a C++ program to sort a given unsorted array of integers, in wave form.
Note: An array is in wave form when array[0] >= array[1] <= array[2] >= array[3] <= array[4] >= . . . .

Sample Solution:

C++ Code :

#include<iostream> // Header file for input/output stream
#include<algorithm> // Header file for using algorithms like sort
using namespace std; // Using the standard namespace

void swap_elements(int *a, int *b)
{
    int t = *a; // Temporary variable to store the value at pointer a
    *a = *b; // Assigning the value at pointer b to pointer a
    *b = t; // Assigning the value in the temporary variable to pointer b
}

void array_wave(int nums[], int n)
{
    sort(nums, nums+n); // Sorting the array in ascending order using the sort function

    // Loop to create the wave pattern in the array
    for (int i = 0; i < n - 1; i += 2)
        swap_elements(&nums[i], &nums[i+1]); // Swapping adjacent elements to create the wave pattern
}

int main()
{
    int nums[] = {4, 5, 9, 12, 9, 22, 45, 7}; // Declaration and initialization of an integer array
    int n = sizeof(nums) / sizeof(nums[0]); // Calculating the number of elements in the array
    cout << "Original array: ";
    for (int i = 0; i < n; i++)
        cout << nums[i] << " "; // Outputting each element of the array
    array_wave(nums, n); // Calling the function to create a wave pattern in the array
    cout << "\nWave form of the said array: ";
    for (int i = 0; i < n; i++)
       cout << nums[i] << " "; // Outputting each element of the modified array in a wave pattern
    return 0;
}

Sample Output:

Original array: 4 5 9 12 9 22 45 7 
Wave form of the said array: 5 4 9 7 12 9 45 22 

Flowchart:

Flowchart: Sort a given unsorted array of integers, in wave form

C++ Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a C++ program to find the next greater element of every element of a given array of integers. Ignore those elements which have no greater element.
Next: Write a C++ program to find the smallest element missing in a sorted array.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://w3resource.com/cpp-exercises/array/cpp-array-exercise-9.php