1. 程式人生 > >樹狀數組和線段樹的那些事

樹狀數組和線段樹的那些事

線段 專題 更新 pan 執行 方便 分支 快速查找 二維

樹狀數組和線段樹的那些事

共同點:線段樹,樹狀數組都是用來快速搜索。

線段樹通過分支查找,樹狀數組通過用二進制快速查找,樹狀數組的查詢和更新時間復雜度都是O(logN),通常來說,樹狀數組能做的線段樹都能解決。線段樹的範圍更廣。

但是樹狀數組的範圍雖然小,但是執行效率卻比線段樹高了不少。

樹狀數組在處理二維,三維的搜索時就會很方便

比如VJ樹狀數組專題的C和K題分別是二維和三維。但是代碼區別都不大,基本就是套模板。

本人覺得樹狀數組在處理逆序數和逆序對區間子集的問題方面樹狀數組更有優勢(可能是我題目寫少了。。。)

但通常會與結構體並用。

線段樹的用途正在探索ing

樹狀數組和線段樹的那些事