Advertisement
Guest User

Untitled

a guest
Jun 21st, 2018
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.50 KB | None | 0 0
  1. int optimalSearchTree(int *keys, int *freq, int n){
  2. int cache[n][n];
  3. for(int i=0; i<n; i++){
  4. for(int j=0; j<n; j++){
  5. if(i==j)
  6. cache[i][j] = freq[i];
  7. else
  8. cache[i][j] = INT_MAX;
  9. }
  10. }
  11. int cost;
  12. for(int L=2; L<=n; L++){
  13. for(int i=0; i<n; i++){
  14. int j = i+L-1;
  15. for(int r=i; r<=j; r++){
  16. cost = ((r>i) ? cache[i][r-1]:0) + ((r<j) ? cache[r+1][j]:0) + sum(freq, i, j);
  17. if(cost < cache[i][j])
  18. cache[i][j] = cost;
  19. }
  20. }
  21. }
  22. return cache[0][n-1];
  23. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement