/*This C Program finds the sum of contiguous subarray within a 1 – D array of numbers which has the largest sum.*/ /* * C Program to Find the Sum of Contiguous Subarray within a 1 - D Array of Numbers which has the Largest Sum */ #include #include int maxSubArraySum(int a[], int size, int *begin, int *end) { int max_so_far = 0, max_end = 0; int i, current_index = 0; for (i = 0; i < size; i++) { max_end = max_end + a[i]; if (max_end <= 0) { max_end = 0; current_index = i + 1; } else if (max_so_far < max_end) { max_so_far = max_end; *begin = current_index; *end = i; } } return max_so_far; } int main() { int arr[] = {10, -2, 15, 9, -8, 12, 20, -5}; int start = 0, end = 0; int size = sizeof(arr) / sizeof(arr[0]); printf(" The max sum is %d", maxSubArraySum(arr, size, &start, &end)); printf(" The begin and End are %d & %d", start, end); getchar(); return 0; } /* The max sum is 56 The begin and End are 0 & 6