Skip to content

Commit b1e61f9

Browse files
authored
Merge pull request AllAlgorithms#169 from Ankit2598/patch-2
Create Matrix Chain Multiplication Co-authored-by: Abraham Hernandez <abraham@abranhe.com>
2 parents 5664338 + d0bc47f commit b1e61f9

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
#include<iostream>
2+
#include<limits.h>
3+
4+
using namespace std;
5+
6+
7+
int MatrixChainMultiplication(int p[], int n)
8+
{
9+
int m[n][n];
10+
int i, j, k, L, q;
11+
12+
for (i=1; i<n; i++)
13+
m[i][i] = 0;
14+
for (L=2; L<n; L++)
15+
{
16+
for (i=1; i<n-L+1; i++)
17+
{
18+
j = i+L-1;
19+
m[i][j] = INT_MAX;
20+
21+
for (k=i; k<=j-1; k++)
22+
{
23+
q = m[i][k] + m[k+1][j] + p[i-1]*p[k]*p[j];
24+
if (q < m[i][j])
25+
{
26+
m[i][j] = q;
27+
}
28+
}
29+
}
30+
}
31+
32+
return m[1][n-1];
33+
34+
}
35+
36+
int main()
37+
{
38+
int n,i;
39+
cout<<"Enter number of matrices\n";
40+
cin>>n;
41+
42+
43+
int arr[n];
44+
45+
cout<<"Enter dimensions \n";
46+
47+
for(i=0;i<n;i++)
48+
{
49+
cout<<"Enter d"<<i+1<<" :: ";
50+
cin>>arr[i];
51+
}
52+
53+
int size = sizeof(arr)/sizeof(arr[0]);
54+
55+
cout<<"Minimum number of multiplications is "<<MatrixChainMultiplication(arr, size);
56+
57+
return 0;
58+
}

0 commit comments

Comments
 (0)