爲何建堆的時間複雜度是O(n)?

若是僅從代碼上直觀觀察,會得出構造二叉堆的時間複雜度爲O(n㏒n)的結果,這個結果是錯的,雖然該算法外層套一個n次循環,而內層套一個分治策略下的㏒n複雜度的循環,該思考方法犯了一個原則性錯誤,那就是構建二叉堆是自下而上的構建,每一層的最大縱深老是小於等於樹的深度的,所以,該問題是疊加問題,而非遞歸問題。那麼換個方式,假如咱們自上而下創建二叉堆,那麼插入每一個節點都和樹的深度有關,而且都是不斷的把樹
相關文章
相關標籤/搜索