矩阵连乘算法java实现
public class MatrixChainOrder {
int[] p;
int[][] m;
int[][] s;
int length;
public MatrixChainOrder(int[] p,int[][] m,int[][] s){
this.p = p;
this.length = p.length/2;
this.m = m;
this.s = s;
init();
clac();
printM();
}
public void init(){
for (int i=0;i<length;i++){
m[i][i] = 0;
}
}
public void clac(){
for (int i=1;i<length;i++){
for (int j=0;j<length-i;j++){
int r = j+i;
int t = Integer.MAX_VALUE;
for (int k = j;k<r;k++){
int temp = m[j][k] + m[k+1][r] + p[j*2]*p[k*2+1]*p[r*2+1];
if (t > temp){
t = temp;
m[j][r] = temp;
}
}
}
}
}
public void printM(){
for (int i=0;i<length;i++){
for (int j=0;j<length;j++){
System.out.print(m[i][j]+ "\t");
}
System.out.println();
}
}
public static void main(String args[]){
int p[] = {30,35,35,15,15,5,5,10,10,20,20,25};
int length = 6;
int[][] m = new int[6][6];
int[][] s = new int[6][6];
new MatrixChainOrder(p,m,s);
}
}
程序运行的结果是:
0 15750 7875 9375 11875 15125
0 0 2625 4375 7125 10500
0 0 0 750 2500 5375
0 0 0
相关文档:
public class DateTest {
public static void main(String[] args) {
Date date = new Date(); // 新建一个日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 格式化日期
String beforeDate = sdf.format(getDateBefore(date, 10));
System ......
安装Java开发软件时,默认安装包含两个文件夹,一个JDK(Java开发工具箱),一个JRE(Java运行环境,内含JVM),其中JDK内另含一个JRE。如果只是运行Java程序,则JRE已足够;而JDK则只有开发人员才用到。
一、JVM内存分配设置
1. JVM内存分配设置的参数有四个:
-Xmx Java Heap最大值,默认值为物理内存的 ......
《java语言程序设计(一)》2009年自学考试大纲第2章
www.wesiedu.com 2009-5-5 在线模拟考场
第2章 运算和语句
(一)课程内容
2.1 数据运算
2.1.1 赋值运算
2.1.2算术运算
2.1.3自增和自减运算
2.1.4关系运算
2.1.5逻辑运算
2.1.6条件运算
2.1.7其他运算
2.2语句
2.2.1基本语句
2.2 ......
第8章 多线程
(一)课程内容
8.1线程的基本概念
8.1.1线程的生命周期
8.1.2线程调度与优先级
8.2 Thread类和Runnable接13
8.2.1 Thread类
8.2.2 Runnable接口
8.3线程互斥和同步
8.3.1线程互斥
8.3.2线程同步
(二)学习目的与要求
本章介绍多线程的概念和编写多线程程序的方法,实现线程之间相互通信和同步的技 ......