|
 |
 |
 |
 |
 |
 |
 |
 |
 |
minWeight
():
|
|
|
// D[i,j] is distance from v[i] to v[j]
|
|
|
for i = 1 to n do
|
|
|
C[i,i+1] = -D[i,i+1];
|
|
|
for s = 3 to n do //
Problem size
|
|
|
for i = 1 to n-s+1 //Start vertex
|
|
|
j = i + s - 1 // End vertex
|
|
|
C[i,j] = mini<k<j {
|
|
|
C[i,k]+C[k,j]+D[i,k]+D[k,j]
|
|
}
|
|
|
return C[1,n].
|
|
|
|
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
| • |
Analysis
|
|
|
|
– |
Time = O(n3)
|
|
|
|
|
|
– |
Space = O(n2)
|
|
|
|
|
| • |
To
remember the
|
|
|
|
triangulation
|
|
|
|
– |
Set
Mem[i,j] to k whenever
|
|
|
C[i,j]
is set
|
|
|
|