Skip to main content

Wave Array | Convert an array to a wave array

 You have given a sorted array a[ ] of distinct integers and you have to sort the array in a wave-like pattern. It will be arranged like a[0]>=a[1]<=a[2]>=a[3]<=a[4]... This question has been asked in Google, Microsoft, Adobe, Amazon, Goldman Sachs, Paytm, and FactSet.

Input:
n=5
a[ ] = {1, 2, 3, 4, 5}
Output: 2 1 4 3 5

So how can we solve this problem?

If our array is already sorted then we have to just swap the array at the alternate elements.
Like for a[ ] = {1, 2, 3, 4, 5}
Loop1: i=0, a[ ] = {2, 1, 3, 4, 5}
Loop2: i=2, a[ ] = {2, 1, 4, 3, 5}
for Loop 3: i=4 which is not less than n-1 i.e. 4.
So the loop ends here.

The array generated is forming a wave pattern: {2, 1, 4, 3, 5}.


Cpp code:

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

int main()
{
    int n;
    cin >> n;
    int a[n];
    for (int i = 0; i < n; i++)
        cin >> a[i];
    for (int i = 0; i < n - 1; i += 2)
    {
        swap(a[i], a[i + 1]);
    }
    for (int i = 0; i < n; i++)
        cout << a[i] << " ";
    cout << endl;
    return 0;
}

Please ask your queries in the comment section.

Comments

Popular posts from this blog

Setting up Cpp environment on VS Code | Windows 10

I have recently switched to Windows 10 from PopOs ( a Debian-based Linux) because of my project-related work which could not be done in any Debian-based Linux. So, I installed windows 10 on my system and it was just a little annoying but cool as well because my system's performance has increased (which was obvious as I have deleted all my previous data just backed up around 60Gb of it). So, starting with the process of setting up the environment for C++ on the VS Code on Windows 10. In Linux, I used to run C++ files on Sublime text only but on Windows, I'm just using VS code for both C++ and JavaScript. Let's start setting up the environment. I am dividing this whole process into 4 steps: First, you have to set up a compiler for the system. As we know that C/C++ is compiled programming language which requires a compiler to make them compiled and run. In Linux, there is already a gcc/g++ compiler preinstalled. But in Windows, you have to install it separately. So you can dow...

Cpp program to count digits in an integer

C++ program to count the number of digits in an integer: Suppose you have an integer, n = 1567. The number of digits in n is 4. Input: 1567 Output: 4 Input: 58694 Output: 5 Solution:  To solve this problem, we can simply iterate to all these digits starting from the rightmost digit. We will update the number by dividing it by 10 until it becomes less than or equal to zero. Step 1: n=1567, count=0.               n = n/10; count = count+1; Step 2: n=156, count=1.             n = n/10; count = count+1; Step 3: n=15, count=2.             n = n/10; count = count+1; Step 4: n=1, count=3.             n = n/10; count = count+1; Step 5: n=0; count=3;               Loop will end here. C++ implementation: #include   <bits/stdc++.h> using   namespace   std ; int   main ()...

3 hacks to wake up early in the morning

So this is what everyone says that we have to wake up early in the morning. Yes, it's good to wake up early and this could be the best decision you will take in your life.   I have read this somewhere that " If you want to change your life, do nothing just start waking up early in the morning and things will start happening ". So yes waking up early in the morning is going to help you a lot and it will surely help in changing your life. Now the question that arises is how we can wake up early in the morning? We all want to wake up early at 5 or 6 Am in the morning but when the clock hits 5 and your alarm makes the sound, your mind says just 5 minutes more and these 5 minutes end up at 1 hour.  So the question is how can we make it to wake up early in the morning. So in this article, I'm sharing 3 hacks that can surely help you in achieving your goal of waking up early in the morning.  The secret of waking up early doesn't lie in the process of waking up early in ...