1.演算法講解見《演算法設計與分析基礎》p223-p227;
2.關於如何確定迴圈的值,見下圖:
可得到下表:
很顯然,d作為最外層迴圈,i為次外層,而j作為i的因變數存在。
i=1~(n-d)
,相應的j= i+d 。
k作為最記憶體迴圈,每次開始迴圈時,始終用temp儲存此次迴圈的最小值,即
3.**如下:
#include#include#define max 9999
void optimalbst(int num,float*p,float**c,int**r)
{ int d,i,j,k,s;
float temp,sum;
for(i=1;i
4.參考資料
《演算法設計與分析基礎》p223-p227;
最優二叉查詢樹
問題描述 對於給定的一組改路,構造乙個期望搜尋代價最小的二叉查詢樹。演算法導論 第二版213頁。include include using namespace std define key number 5 define infinity 1000 期望搜尋代價,只使用1 i n 1,0 j n的表...
最優二叉查詢樹(optimal BST)
最優二叉查詢樹 一棵有n個結點的二叉查詢樹,已知每個結點的查詢概率pi 且 pi 1 要使查詢操作的平均比較次數最小。這裡討論的是成功查詢,不討論不成功的查詢 動態規劃 c i j 表示由結點i j組成的bst成功查詢的最小平均查詢次數。r i j 表示由結點i j構成最優二叉查詢樹時的樹根結點。轉...
最優二叉檢索樹
給定資料集 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 的最優二叉搜尋樹的平均比較次數 遞推...