Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int optimalSearchTree(int *keys, int *freq, int n){
- int cache[n][n];
- for(int i=0; i<n; i++){
- for(int j=0; j<n; j++){
- if(i==j)
- cache[i][j] = freq[i];
- else
- cache[i][j] = INT_MAX;
- }
- }
- int cost;
- for(int L=2; L<=n; L++){
- for(int i=0; i<n; i++){
- int j = i+L-1;
- for(int r=i; r<=j; r++){
- cost = ((r>i) ? cache[i][r-1]:0) + ((r<j) ? cache[r+1][j]:0) + sum(freq, i, j);
- if(cost < cache[i][j])
- cache[i][j] = cost;
- }
- }
- }
- return cache[0][n-1];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement