c++ - Finding the Indexes of a minimum sum subarray recursively -
i need find substring of lowest sum in given array, i.e {2, -3, -5, 6, 7,} giving -8 adding bolded numbers. found way retrieve sum recursively program retrieve sum not indexes
using namespace std; int min(int a, int b) { return (a < b)? : b; } int min(int a, int b, int c) { return min(min(a,b), c); } int mincrossingsum(int a[], int l, int m, int h){ int sum = 0; int leftsum = int_max; for(int = m; >= l; i--){ sum += a[i]; if (sum < leftsum) leftsum = sum; } sum = 0; int rightsum = int_max; for(int = m+1; <= h; i++){ sum += a[i]; if (sum < rightsum) rightsum = sum; } return leftsum + rightsum; } int minsubarraydac(int a[], int start, int arraysize) { if (start == arraysize) return a[start]; int m = ((start + arraysize)/ 2); return min(minsubarraydac(a, start, m), minsubarraydac(a, m+1, arraysize), mincrossingsum(a, start, m, arraysize)); } int main() { int arr[] = {2, 3, -4, -5, 7}; int n = sizeof(arr)/sizeof(arr[0]); int min_sum = minsubarraydac(arr, 0, n-1); printf("minimum contiguous sum %d\n", min_sum); return 0; }
Comments
Post a Comment