問題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會越界!!!