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:
- Initialize SumFirst and SumSecond as 0.
- Traverse the given array.
- 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 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# 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++ 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 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 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 |
<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> |
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
- Initializing firstSum=0 and LastSum=0 and also traversing the array starting from the 0th index to N/2.
- Adding values of arr[i] to the firstSum.
- Adding values of arr[i+n/2] to the secondSum.
- 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# 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++ 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 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 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 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)