From 115c50932225ee8737d10be570155b144ec3a642 Mon Sep 17 00:00:00 2001 From: himanshukumar4642 Date: Tue, 15 Oct 2019 19:00:43 +0530 Subject: [PATCH] matrixChainMultiplicationInJava --- .../matrixChainMultiplicationJava.cpp | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 Dynamic Programming/matrixChainMultiplicationJava.cpp diff --git a/Dynamic Programming/matrixChainMultiplicationJava.cpp b/Dynamic Programming/matrixChainMultiplicationJava.cpp new file mode 100644 index 00000000..070d604f --- /dev/null +++ b/Dynamic Programming/matrixChainMultiplicationJava.cpp @@ -0,0 +1,46 @@ + +#include +using namespace std; + +int MatrixChainOrder(int p[], int n) +{ + + int m[n][n]; + + int i, j, k, L, q; + + for (i = 1; i < n; i++) + m[i][i] = 0; + + for (L = 2; L < n; L++) + { + for (i = 1; i < n - L + 1; i++) + { + j = i + L - 1; + m[i][j] = INT_MAX; + for (k = i; k <= j - 1; k++) + { + q = m[i][k] + m[k + 1][j] + + p[i - 1] * p[k] * p[j]; + if (q < m[i][j]) + m[i][j] = q; + } + } + } + + return m[1][n - 1]; +} + +int main() +{ + int arr[] = {1, 2, 3, 4}; + int size = sizeof(arr) / sizeof(arr[0]); + + cout << "Minimum number of multiplications is " + << MatrixChainOrder(arr, size); + + getchar(); + return 0; +} + +