算法一

作者在 2010-05-25 12:18:57 发布以下内容
矩阵连乘 计算最优值
void MatrixChain(int *p,int n,int**m,int **s)
{
    for(int i=1;i<=n;i++)
        m[i][i]=0;
    for(int r=2;r<=n;r++)
        for(int i=1;i<=n-r+1;i++)
        {
            int j=i+r-1;
            m[i][j]=m[i+1][j]+p[i-1]*p[i]*p[j];
            s[i][j]=i;
            for(int k=i+1;k<j;k++)
            {
                int t=m[i][k]+m[k+1][j]+p[i-1]*p[k]*p[j];
                if(t<m[i][j])
                {
                    m[i][j]=t;
                    s[i][j]=k;
                }
            }
        }
}
默认分类 | 阅读 872 次
文章评论,共0条
游客请输入验证码
文章分类