2013-01-18 51 views

回答

0

如果u使用線段樹,構建是O(nlgn),每個查詢是O(LGN)

如果數組是靜態的,U也可以嘗試另一種算法RMQ。構建時間是O(nlgn),每個查詢只有O(1)。

+0

爲什麼建立時間O(nlogn)?據我所知,總共有2n-1個節點。作爲一個例子N = 16。所以節點1是1-16,節點2是1-8,節點3是9-16。當我們繼續分割時,我們看到有2n-1個節點。並且對於每個節點,只進行一次比較。所以時間是O(2n-1)或O(n)。 plz解釋我是如何的時間是O(nlogn) – vishalgoel

0

線段樹的複雜性:

  1. 初始化逐個元素:O(NLogN)從陣列
  2. 初始化:O(N)
  3. 查詢範圍:O(logN)的
  4. 插入(更新)元素:O(logN)