Open In App

Find the XOR of first half and second half elements of an array

Last Updated : 25 May, 2022
Comments
Improve
Suggest changes
Like Article
Like
Report

Given an array arr of size N. The task is to find the XOR of the first half (N/2) elements and second half elements (N - N/2) of an array.
Examples: 
 

Input: arr[]={20, 30, 50, 10, 55, 15, 42} 
Output: 56, 24 
Explanation: 
XOR of first half elements 20 ^ 30 ^ 50 is 56 
Xor of second half elements 10 ^ 55 ^ 15 ^ 42 is 24
Input: arr[]={50, 45, 36, 6, 8, 87} 
Output: 59, 89 
 


 


Approach: 
 

  1. Initialize FirstHalfXOR and SecondHalfXOR as 0. 
     
  2. Traverse the array and XOR elements in FirstHalfXOR until the current index is less than N/2. 
     
  3. Otherwise, XOR elements in SecondHalfXOR. 
     


Below is the implementation of the above approach:
 

C++
// C++ program to find the xor of 
// the first half elements and 
// second half elements of an array 
#include <iostream>
using namespace std;

// Function to find the xor of 
// the first half elements and 
// second half elements of an array 
void XOROfElements(int arr[], int n){ 

    int FirstHalfXOR = 0; 
    int SecondHalfXOR = 0; 

    for(int i=0; i < n; i++){
        
        // xor of elements in FirstHalfXOR 
        if (i < n / 2)
            FirstHalfXOR ^= arr[i]; 

        // xor of elements in SecondHalfXOR 
        else
            SecondHalfXOR ^= arr[i]; 
    }    
    cout << FirstHalfXOR << "," << SecondHalfXOR << endl; 

}

// Driver Code 
int main() {
    int arr[] = {20, 30, 50, 10, 55, 15, 42}; 

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

    // Function call 
    XOROfElements(arr, N); 
    
    return 0;
}

// This code is contributed by AnkitRai01
Java
// Java program to find the xor of 
// the first half elements and 
// second half elements of an array 

class GFG{

// Function to find the xor of 
// the first half elements and 
// second half elements of an array 
static void XOROfElements(int arr[], int n){ 

    int FirstHalfXOR = 0; 
    int SecondHalfXOR = 0; 

    for(int i = 0; i < n; i++){
        
        // xor of elements in FirstHalfXOR 
        if (i < n / 2)
            FirstHalfXOR ^= arr[i]; 

        // xor of elements in SecondHalfXOR 
        else
            SecondHalfXOR ^= arr[i]; 
    } 
    System.out.print(FirstHalfXOR + "," 
                     + SecondHalfXOR + "\n"); 

}

// Driver Code 
public static void main(String[] args) 
{
    int arr[] = { 20, 30, 50, 10, 55, 15, 42 }; 

    int N = arr.length; 

    // Function call 
    XOROfElements(arr, N); 
    
}
}

// This code is contributed by 29AjayKumar
Python3
# Python3 program to find the xor of 
# the first half elements and 
# second half elements of an array 

# Function to find the xor of 
# the first half elements and 
# second half elements of an array 
def XOROfElements(arr, n): 

    FirstHalfXOR = 0; 
    SecondHalfXOR = 0; 

    for i in range(n): 
        
        # xor of elements in FirstHalfXOR
        if (i < n // 2): 
            FirstHalfXOR ^= arr[i]; 

        # xor of elements in SecondHalfXOR
        else: 
            SecondHalfXOR  ^= arr[i]; 
            
    print(FirstHalfXOR,",",SecondHalfXOR);

# Driver Code 
arr = [20, 30, 50, 10, 55, 15, 42]; 

N = len(arr); 

# Function call 
XOROfElements(arr, N); 
C#
// C# program to find the xor of 
// the first half elements and 
// second half elements of an array 
using System;

class GFG{

// Function to find the xor of 
// the first half elements and 
// second half elements of an array 
static void XOROfElements(int []arr, int n)
{ 
    int FirstHalfXOR = 0; 
    int SecondHalfXOR = 0; 

    for(int i = 0; i < n; i++)
    {
       
       // xor of elements in FirstHalfXOR 
       if (i < n / 2)
           FirstHalfXOR ^= arr[i]; 
           
       // xor of elements in SecondHalfXOR 
       else
           SecondHalfXOR ^= arr[i]; 
    }
    
    Console.Write(FirstHalfXOR + "," +
                  SecondHalfXOR + "\n"); 
}

// Driver Code 
public static void Main(String[] args) 
{
    int []arr = { 20, 30, 50, 10, 55, 15, 42 }; 
    int N = arr.Length; 

    // Function call 
    XOROfElements(arr, N); 
}
}

// This code is contributed by 29AjayKumar
JavaScript
<script>

// Javascript program to find the xor of 
// the first half elements and 
// second half elements of an array 

    // Function to find the xor of
    // the first half elements and
    // second half elements of an array
    function XOROfElements(arr , n) 
    {

        var FirstHalfXOR = 0;
        var SecondHalfXOR = 0;

        for (i = 0; i < n; i++) {

            // xor of elements in FirstHalfXOR
            if (i < parseInt(n / 2))
                FirstHalfXOR ^= arr[i];

            // xor of elements in SecondHalfXOR
            else
                SecondHalfXOR ^= arr[i];
        }
        document.write(
        FirstHalfXOR + ", " + SecondHalfXOR + "\n"
        );

    }

    // Driver Code
    
        var arr = [ 20, 30, 50, 10, 55, 15, 42 ];

        var N = arr.length;

        // Function call
        XOROfElements(arr, N);


// This code contributed by umadevi9616 

</script>

Output: 
56, 24

 

Time complexity: O(N), as we are using a loop to traverse the array.
Auxiliary Space: O(1), as we are not using any extra space.


Article Tags :

Similar Reads