看板 Grad-ProbAsk 關於我們 聯絡資訊
※ 引述《taitin (小南)》之銘言: : ※ 引述《EntHeEnd (...)》之銘言: : : Prove that the average height of the BST after inserting n integer values : : {1,2,...,n}in a random order is O(log n) : : 請問這題要怎樣證呢 ? : 假設N個數中,Xj為第j個插入的數字 : 則可將數列分成兩個數列,僅需討論已下數列 : 1.{G|Xj<Xi<root key} 1<=i<=j<=n : 2.{L|Xj>Xi>root key} 1<=i<=j<=n (<= 小於或等於) 為什麼Xj同時有大於和小於root兩種情況呢 是分成兩個case討論嗎 ? : 則 Xj的深度=|G|+|L| 其中|G|,|L|為符合敘述的個數 : 討論|G|在ith插入時的期望值 : 則每次增加高度的期望值為p(Xi)=1/i 請問插入第i的點 增加高度的期望值為什麼是1/i呢 是因為第i個點要插入時 會有i個可能(目前null pointer數)嗎... 然後最後會在最長path的只有其中一個leaf 所以機率是1/i嗎 可是這樣想也怪怪的... 因為是BST那第i個key值要插入 應該不會有i個選擇才對... 或者說是第i個key值 是random number 可是在key range有所限制 前i-1個key值造出來的BST 對第i個選出來的key值的插入位置不會有所限制嗎... ? 我看網頁中他是說p(Xi)是第i個點在最長path中的機率吧 然後path中的點又分成兩個set 一個是key值小於最長path的最後點 一個是key值大於最長path的最後點 這樣插入第i點分兩個set討論 是要怎樣討論呢 不是很懂orz... P(Xi)=1/i 比較像一起討論的機率耶... : 依序插入N個值後,可得到總高度為 : |G|=p(X1)+p(X2)+...+p(Xn) : =1+1/2+1/3+1/4+...1/n 為一調和數列 這邊就無法理解 他是說插入的第一個點是root 所以必在path中 所以p(X1)=1吧 可是第一個點要怎樣用分成兩個sublist的情況討論... 所以我會覺得他這個算法比較像一次整個考慮第i點屬於 up-records 或屬於 down-records的機率耶... 看不是很懂... : =O(logn) : 同理可証得,|L|=O(logn) : 因此random binary search tree 深度為 : |G|+|L|=O(logn) : http://www.cs.mcgill.ca/~cs251/OldCourses/1997/topic10/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.126.125.176 ※ 編輯: EntHeEnd 來自: 59.126.125.176 (02/06 21:05)