动态规划——矩阵链相乘

xiaoxiao2021-02-28  31

代码如下:

#include <stdio.h> #define M 7 #define MAX 99999 int C[M][M]; int MATCHAIN(int *num,int length); int main(void) { int num[] = {2,3,6,4,2,7}; int length = (int)(sizeof(num)/sizeof(int)); printf("%d\n",MATCHAIN(num,length)); return 0; } int MATCHAIN(int *num,int length) { int i=0,j=0,k=0,d=0; for(i=0;i<length;i++) C[i][i] = 0; for(d=1;d<=length-1;d++) { for(i=0;i<=length-d;i++) { j = i+d; C[i][j] = MAX; for(k=i+1;k<=j;k++) { C[i][j] = C[i][j]<(C[i][k-1]+C[k][j]+num[i]*num[k]*num[j+1])?C[i][j]:(C[i][k-1]+C[k][j]+num[i]*num[k]*num[j+1]); } } } return C[0][length-2]; }
转载请注明原文地址: https://www.6miu.com/read-2629152.html

最新回复(0)