kadane's algorithm

C
public int kadane(int[] arr){
	int max_so_far = 0, curr_max = Integer.MIN_VALUE;
    for(int i: arr){
    	max_so_far += i;
        if(max_so_far<0) max_so_far = 0;
        if(max_so_far>curr_max) curr_max = max_so_far;
    }
    return curr_max;
}# Python program to find maximum contiguous subarray 
  
def maxSubArraySum(a,size): 
      
    max_so_far =a[0] 
    curr_max = a[0] 
      
    for i in range(1,size): 
        curr_max = max(a[i], curr_max + a[i]) 
        max_so_far = max(max_so_far,curr_max) 
          
    return max_so_far 
  
# Driver function to check the above function  
a = [-2, -3, 4, -1, -2, 1, 5, -3] 
print"Maximum contiguous sum is" , maxSubArraySum(a,len(a)) 
  
#This code is contributed by _Devesh Agrawal_ 
static int maxSubArraySum(int a[],int size)  
{  
      
    int max_so_far = 0, max_ending_here = 0;  
  
    for (int i = 0; i < size; i++)  
    {  
        max_ending_here = max_ending_here + a[i]; 
        if (max_ending_here < 0)  
            max_ending_here = 0;  
          
        /* Do not compare for all 
           elements. Compare only  
           when max_ending_here > 0 */
        else if (max_so_far < max_ending_here)  
            max_so_far = max_ending_here;  
          
    }  
    return max_so_far;  
}  
  
// This code is contributed by ANKITRAI1 

Source

Also in C: