Sort Array By Parity

Given an array A of non-negative integers, return an array consisting of all the even elements of A, followed by all the odd elements of A.

Example:

Input:  arr[]={3,1,2,4}
Output: arr[]={2,4,3,1}

Approach

Java

import java.util.Arrays;

public class SortArrayByParity {
    public static void main(String[] args) {
        int arr[] = { 3124 };
        int sortArr[] = sortArrayByParity(arr);
        System.out.println(Arrays.toString(sortArr));
    }

    // given array sort by parity
    private static int[] sortArrayByParity(int[] arr) {
        int a[] = new int[arr.length];
        int even = 0;
        int odd = arr.length - 1;
        for (int i = 0; i < arr.length; i++) {
            // for even
            if (arr[i] % 2 == 0) {
                a[even++] = arr[i];
            }
            // for odd
            else {
                a[odd--] = arr[i];
            }
        }
        return a;
    }
}

C++

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


//sort the array by parity
vector<intsortArrayByParity(vector<int>& A
{
    vector<intres;

    //for even numbers
    for(int i=0;i<A.size();i++)
        {
          if(A[i]%2==0)
           {

             res.push_back(A[i]);
           }
        }
    //for odd numbers
    for(int i=0;i<A.size();i++)
        {
            if(A[i]&1)
              {
                  res.push_back(A[i]);
              }
        }
    return res;
}
int main()
{
   vector<intarr={3,1,2,4};
   vector<intnewArray=sortArrayByParity(arr);
   for(int i=0;i<newArray.size();i++)
      cout<<newArray[i]<<" ";
   return 0;
}


No comments:

Post a Comment