Open In App

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

Last Updated : 27 Mar, 2023
Comments
Improve
Suggest changes
Like Article
Like
Report

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

Examples:

Input : arr[] = {20, 30, 60, 10, 25, 15, 40} 
Output : 110, 90 
Sum of first N/2 elements 20 + 30 + 60 is 110
Input : arr[] = {50, 35, 20, 15} 
Output : 85, 35

Approach:

  1. Initialize SumFirst and SumSecond as 0. 
  2. Traverse the given array. 
  3. Now add elements in SumFirst if the current index is less than N/2 otherwise add in SumSecond.

Below is the implementation of the above approach: 

C
// C program to find the sum of the first half elements and
// second half elements of the array. Function to find find
// the sum of the first half elements and second half
// elements of the array.
#include <stdio.h>

void sum_of_elements(int arr[], int n)
{
    int sum_of_first = 0, sum_of_second = 0;

    // adding
    for (int i = 0; i < n; i++) {
        // adding first half
        if (i < n / 2) {
            sum_of_first += arr[i];
        }

        // adding second half
        else {
            sum_of_second += arr[i];
        }
    }

    // printing answer
    printf("Sum of first half elements is %d\n",
           sum_of_first);
    printf("Sum of second half elements is %d\n",
           sum_of_second);
}

// Driver code
int main()
{

    int arr[] = { 20, 30, 60, 10, 25, 15, 40 };

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

    // function call
    sum_of_elements(arr, n);

    return 0;
}
C#
// C# program to count pairs
// whose sum divisible by 'K'
using System;

class GFG {
    public static void sum_of_elements(int[] arr, int n)
    {

        int sumfirst = 0, sumsecond = 0;

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

            // Add elements in first half sum
            if (i < n / 2) {
                sumfirst += arr[i];
            }

            // Add elements in the second half sum
            else {
                sumsecond += arr[i];
            }
        }

        Console.WriteLine("Sum of first half elements is "
                          + sumfirst);

        Console.WriteLine("Sum of second half elements is "
                          + sumsecond);
    }

    // Driver code
    static public void Main()
    {
        int[] arr = { 20, 30, 60, 10, 25, 15, 40 };
        int n = arr.Length;

        // Function call
        sum_of_elements(arr, n);
    }
}

// This code is contributed by nidhiva
C++
// C++ program to find the sum of the first half
// elements and second half elements of an array

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

// Function to find the sum of the first half
// elements and second half elements of an array
void sum_of_elements(int arr[], int n) {
  
    int sumfirst = 0, sumsecond = 0;

    for (int i = 0; i < n; i++) {
        // Add elements in first half sum
        if (i < n / 2)
            sumfirst += arr[i];

        // Add elements in the second half sum
        else
            sumsecond += arr[i];
    }

    cout << "Sum of first half elements is " << sumfirst
         << endl;

    cout << "Sum of second half elements is " << sumsecond
         << endl;
}

// Driver Code
int main()
{
    int arr[] = { 20, 30, 60, 10, 25, 15, 40 };

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

    // Function call
    sum_of_elements(arr, n);

    return 0;
}
Java
// Java program to count pairs
// whose sum divisible by 'K'

import java.util.*;

class GFG {

    public static void sum_of_elements(int[] arr, int n)
    {
        int sumfirst = 0, sumsecond = 0;

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

            // Add elements in first half sum
            if (i < n / 2) {
                sumfirst += arr[i];
            }

            // Add elements in the second half sum
            else {
                sumsecond += arr[i];
            }
        }

        System.out.println("Sum of first half elements is "
                           + sumfirst);

        System.out.println("Sum of second half elements is "
                           + sumsecond);
    }

    // Driver code
    public static void main(String[] args)
    {
        int[] arr = { 20, 30, 60, 10, 25, 15, 40 };
        int n = arr.length;

        // Function call
        sum_of_elements(arr, n);
    }
}

// This code is contributed by Princi Singh
Python3
# Python3 program to find the sum of
# the first half elements and
# second half elements of an array

# Function to find the sum of
# the first half elements and
# second half elements of an array


def sum_of_elements(arr, n):

    sumfirst = 0
    sumsecond = 0

    for i in range(n):

        # Add elements in first half sum
        if (i < n // 2):
            sumfirst += arr[i]

        # Add elements in the second half sum
        else:
            sumsecond += arr[i]

    print("Sum of first half elements is",
          sumfirst, end="\n")
    print("Sum of second half elements is",
          sumsecond, end="\n")


# Driver Code
arr = [20, 30, 60, 10, 25, 15, 40]

n = len(arr)

# Function call
sum_of_elements(arr, n)

# This code is contributed
# by Akanksha Rai
JavaScript
<script>

// Javascript program to count pairs 
// whose sum divisible by 'K' 

    function sum_of_elements(arr , n)
    {
        var sumfirst = 0, sumsecond = 0;

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

            // Add elements in first half sum
            if (i < parseInt(n / 2))
            {
                sumfirst += arr[i];
            }

            // Add elements in the second half sum
            else {
                sumsecond += arr[i];
            }
        }

        document.write(
     "Sum of first half elements is " + sumfirst+"<br/>"
        );

        document.write(
    "Sum of second half elements is " + sumsecond+"<br/>"
        );
    }

    // Driver code
    
        var arr = [ 20, 30, 60, 10, 25, 15, 40 ];
        var n = arr.length;

        // Function call
        sum_of_elements(arr, n);

// This code contributed by umadevi9616

</script>

Output: 
Sum of first half elements is 110
Sum of second half elements is 90

 

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.

Approach 2: Traversing half of the array length.

The idea is to traverse half the length of the array and calculate the first sum and second sum simultaneously by 

  1. Initializing firstSum=0 and LastSum=0 and also traversing the array starting from the 0th index to N/2. 
  2. Adding values of arr[i] to the firstSum.
  3. Adding values of arr[i+n/2] to the secondSum.
  4. An edge case occurs when the length of the array is odd. In this case, the first sum has the sum of the first N/2 elements while secondSum has the sum of the remaining elements excluding the last element (since the loop runs for n/2 times the last element is excluded) Hence we take care of this exclusively.

Below is the code for the same.

C#
// c# code to find the sum of first n/2 and last n- n/2
// elements of an array by traversing the array length/2
// times
using System;

public class GFG {
    public static void Main()
    {
        int[] arr = { 20, 30, 60, 10, 25, 15, 40 };
        int n = arr.Length;

        // Function call
        sum(arr, n);
    }
    // function definition
    public static void sum(int[] arr, int n)
    {
        int firstSum = 0, secondSum = 0;
        // initializing the firstSum and secondSum variables
        for (int i = 0; i < n / 2; i++) {
            // adding elements of the first half to firstSum
            firstSum += arr[i];
            // adding elements of the second half to
            // secondSum
            secondSum += arr[i + n / 2];
        }
        // checking for the odd case length
        if (n % 2 != 0)
            secondSum += arr[n - 1];
        // printing the sums
        Console.WriteLine("Sum of first half elements is "
                          + firstSum);
        Console.WriteLine("Sum of second half elements is "
                          + secondSum);
    }
}
C++
// c++ code to find the sum of first n/2 and last n- n/2
// elements of an array by traversing the array length/2
// times
#include <bits/stdc++.h>
using namespace std;

// Function definition
void sum(int arr[], int n)
{
    int firstSum = 0, secondSum = 0;
    // initializing the firstSum and secondSum variables
    for (int i = 0; i < n / 2; i++) {
        // adding elements of the first half to firstSum
        firstSum += arr[i];
        // adding elements of the second half to secondSum
        secondSum += arr[i + n / 2];
    }
    // checking for the odd case length
    if (n % 2 != 0)
        secondSum += arr[n - 1];
    // printing the sums
    cout << "Sum of first half elements is " << firstSum
         << endl;

    cout << "Sum of second half elements is " << secondSum
         << endl;
}

// Driver Code
int main()
{
    int arr[] = { 20, 30, 60, 10, 25, 15, 40 };

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

    // Function call
    sum(arr, n);

    return 0;
}
Java
// Java code to find the sum of first n/2 and last n- n/2
// elements of an array by traversing the array length/2
// times
import java.util.*;

public class Main {
    // Function definition
    static void sum(int arr[], int n)
    {
        int firstSum = 0, secondSum = 0;
        // initializing the firstSum and secondSum variables
        for (int i = 0; i < n / 2; i++) {
            // adding elements of the first half to firstSum
            firstSum += arr[i];
            // adding elements of the second half to
            // secondSum
            secondSum += arr[i + n / 2];
        }
        // checking for the odd case length
        if (n % 2 != 0)
            secondSum += arr[n - 1];
        // printing the sums
        System.out.println("Sum of first half elements is "
                           + firstSum);
        System.out.println("Sum of second half elements is "
                           + secondSum);
    }

    // Driver Code
    public static void main(String[] args)
    {
        int arr[] = { 20, 30, 60, 10, 25, 15, 40 };
        int n = arr.length;
        // Function call
        sum(arr, n);
    }
}
Python
# python code to find the sum of first n/2 and last n- n/2
# elements of an array by traversing the array length/2
# times
# function definition


def sum(arr, n):
    first_sum, second_sum = 0, 0
    # initializing the first_sum and second_sum variables
    for i in range(n // 2):
        # adding elements of the first half to first_sum
        first_sum += arr[i]
        # adding elements of the second half to second_sum
        second_sum += arr[i + n // 2]
    # checking for the odd case length
    if n % 2 != 0:
        second_sum += arr[n - 1]
    # printing the sums
    print('Sum of first half elements is', first_sum)
    print("Sum of second half elements is", second_sum)


# Driver Code
arr = [20, 30, 60, 10, 25, 15, 40]
n = len(arr)
# Function call
sum(arr, n)
JavaScript
// JavaScript code to find the sum of first n/2 and last n- n/2
// elements of an array by traversing the array length/2
// times

// Function definition
function sum(arr, n) {
    let firstSum = 0, secondSum = 0;
    // initializing the firstSum and secondSum variables
    for (let i = 0; i < Math.floor(n / 2); i++) {
        // adding elements of the first half to firstSum
        firstSum += arr[i];
        // adding elements of the second half to secondSum
        secondSum += arr[i + Math.floor(n / 2)];
    }
    // checking for the odd case length
    if (n % 2 !== 0)
        secondSum += arr[n - 1];
    // printing the sums
    console.log(`Sum of first half elements is ${firstSum}`);
    console.log(`Sum of second half elements is ${secondSum}`);
}

// Driver Code
const arr = [20, 30, 60, 10, 25, 15, 40];

const n = arr.length;

// Function call
sum(arr, n);

Output:

Sum of first half elements is 110
Sum of second half elements is 90

Time complexity: O(N/2)
Auxiliary Space: O(1)


Similar Reads