動態規劃之最優二叉搜尋樹

2022-09-23 13:33:08 字數 811 閱讀 5650

/*

* 最優二叉搜尋樹

*/public class optimalbst ; //k1..k5的概率

private double q = ; //d1..d5的概率

public static void main(string args)

public optimalbst()

//計算得到最優二叉搜尋樹期望代價

private void compute()

for(int len=1;len<=scale;len++) }}

} }

//列印最優二叉查詢樹的結構

void print(int i,int j,int r)

if (j < i - 1)

else if (j == i - 1)

else

system.out.println("d" + j + "是k" + r + "的右孩子");

return;

} else

else

} print(i,rootchild - 1,rootchild);

print(rootchild + 1,j,rootchild);

} }執行結果與演算法導論上一致:

k2是根

k1是k2的左孩子

d0是k1的左孩子

d1是k1的右孩子

k5是k2的右孩子

k4是k5的左孩子

k3是k4的左孩子

d2是k3的左孩子

d3是k3的右孩子

d4是k4的右孩子

d5是k5的右孩子

動態規劃之最優二叉搜尋樹

在看這張之前,最好看看我寫的 動態規劃詳解 裡面都是講理論基礎,我下面的分析都是在此基礎上進展的。給定乙個由n個互異的關鍵字組成的序列k k1,k2,kn 且關鍵字有序 因此有k1 k2 kn 從這些關鍵字中構造一棵二叉查詢樹。對每個關鍵字ki,一次搜尋為ki的概率是pi。某些搜尋的值可能不在k內,...

動態規劃之最優二叉搜尋樹

最優二叉搜尋樹簡介 舉例以及詳細分析 塊測試結果 1 概念引入 基於統計先驗知識,我們可統計出乙個數表 集合 中各元素的查詢概率,理解為集合各元素的出現頻率。比如中文輸入法字型檔中各詞條 單字 片語等 的先驗概率,針對使用者習慣可以自動調整詞頻 所謂動態調頻 高頻先現原則,以減少使用者翻查次數。這就...

動態規劃之最優二叉搜尋樹(演算法導論)

1 一些概念 二叉搜尋樹 在二叉樹中,對任意的節點x其左子樹的所有節點都不大於x.key,其右子樹的所有節點都不小於x.key。滿足此條件的二叉樹稱為二叉搜尋樹。對二叉搜尋樹進行中序遍歷將會得到乙個單調遞增的數列。最優二叉樹 在二叉樹中,不同的節點都有不同的訪問頻率。為了減少查詢某個節點所需要遍歷的...