Visual C++ - Sub Total For Each Pair and Sum in a Given Array
You can find the C++ sample code to find out the sub total for each possible pair in the given array and make sure the sum also exists in the array.
Big O notation for finding all possible sum of pairs in a given array is n(n+1) / 2. In our example, it would be 12 elements coming into 78. Comparing whether SUM exists in the array needs to be done with the formula:
( (n(n+1) / 2) - n) * n = 792
This 792 times can be optimized by using break; statement in the innermost for loop.
#include < stdio.h > #include < string.h > #include < iostream > void SubTotal_For_Pair_In_Array(int *p, int n) { int count = 0; int innercount = 0; for(int i = 0; i < n; i++) { count++; int a = p[i]; for(int j = i + 1; j < n; j++) { count++; int b = p[j]; int sum = a + b; for(int k = 0; k < n; k++) { innercount++; if(sum == p[k]) { std::cout << a << " + " << b << " = " << sum << "\n"; continue; // Use Break in real time //break; } } } } std::cout << n << " = " << count << "," << innercount << "\n"; } void main() { int arr[] = { 30, 80, 5, 55, 15, 20, 25, 10, 60, 65, 70, 75 }; int len = sizeof(arr) / sizeof(arr[0]); SubTotal_For_Pair_In_Array(arr, len); }
Sample Output
30 + 25 = 55
5 + 55 = 60
5 + 15 = 20
5 + 20 = 25
5 + 25 = 30
5 + 10 = 15
5 + 60 = 65
5 + 65 = 70
5 + 70 = 75
5 + 75 = 80
55 + 15 = 70
55 + 20 = 75
55 + 25 = 80
55 + 10 = 65
15 + 10 = 25
15 + 60 = 75
15 + 65 = 80
20 + 10 = 30
20 + 60 = 80
10 + 60 = 70
10 + 65 = 75
10 + 70 = 80
12 = 78,792
Press any key to continue . . .
|