Code From Here (g4g)
/**
1) Initialize leftsum as 0
2) Get the total sum of the array as sum
3) Iterate through the array and for each index i, do following.
a) Update sum to get the right sum.
sum = sum - arr[i] sum is now right sum
b) If leftsum is equal to sum, then return current index.
c) leftsum = leftsum + arr[i]
4) return -1
**/
int equilibrium(int arr[], int n)
{
int sum = 0;
int leftsum = 0;
int i;
for (i = 0; i < n; ++i)
sum += arr[i];
for( i = 0; i < n; ++i)
{
sum -= arr[i];
if(leftsum == sum)
return i;
leftsum += arr[i];
}
return -1;
}