Skip to content
Related Articles

Related Articles

Find the XOR of first half and second half elements of an array
  • Last Updated : 22 Apr, 2021

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)
 

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :