線段樹為什么要開4倍空間


問題1: 線段樹空間只需要2*n即可???

對於這種建圖方式,建出來的並不是完全二叉樹,而是具有完全二叉樹性質(父節點為x,則左兒子為2x,右兒子為2x+1),好處:可以省掉許多並不需要的節點。由於具有完全二叉樹這種性質,2*n空間一定不夠用!!見下圖:

 

 

問題2: 線段樹空間只需要3*n即可???

證明: 設長度為N的數組在線段樹中,編號最靠右的節點為F(N)。(上圖長度n=6,編號最右節點為13)

代碼測試:

思路:通過觀察在建樹過程中,最大的節點來判斷是否會3*n空間越界。

結果:通過發現,存在許多的3n空間的越界,最小的n=36,平時我們手動畫一畫,看是否3n越界,可能只是畫的n比較小,所以畫一畫n=36,你將發現3*n會越界!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM