最優二叉檢索樹

2021-07-02 05:42:07 字數 433 閱讀 9657

給定資料集

s = < x1 , x2 , …, xn>,

及s 的訪問概率分布如下:

p = < a0 , b1 , a1 , b2 , a2 , … , bn, an >

求一棵最優的( 即平均比較次數最少的)二分檢索樹.

令w[i,j]是p[i,j]中所有概率(資料與空隙)之和

設m[i,j] 是相對於輸入s[i,j] 和p[i,j] 的最優二叉搜尋樹的平均比較次數

遞推方程(k表示將第k個元素作為根來歸結子問題):

m[i,j] = min , i=

m[i,j]中,i,j 的所有組合有o(n^2)種,每種都要對不同的k進行計算,k的選取有o(n)種,每次計算為常數時間

時間複雜度:t(n) = o(n^3)

空間複雜度:即標記函式的個數s(n) = o(n^2)

最優二叉查詢樹

1.演算法講解見 演算法設計與分析基礎 p223 p227 2.關於如何確定迴圈的值,見下圖 可得到下表 很顯然,d作為最外層迴圈,i為次外層,而j作為i的因變數存在。i 1 n d 相應的j i d k作為最記憶體迴圈,每次開始迴圈時,始終用temp儲存此次迴圈的最小值,即 3.如下 includ...

最優二叉樹

include include includetypedef struct huffmantree typedef char huffmancode 赫夫曼編碼 void selectnode huffmantree ht,int n,int bt1,int bt2 從1 i 1個結點選擇paren...

最優二叉樹

所謂哈夫曼樹即最優二叉樹,其特點是帶權路徑長度最小 建樹原理 將最小數結點放到最下面,大數放到離頂點近的地方,建樹時從下往上建,每上一層下一層的數就被重複加一次,這樣最終得到完整樹 資料結構實驗之二叉樹六 哈夫曼編碼 problem description 字元的編碼方式有多種,除了大家熟悉的asc...