为何建堆的时间复杂度是O(n)?

若是仅从代码上直观观察,会得出构造二叉堆的时间复杂度为O(n㏒n)的结果,这个结果是错的,虽然该算法外层套一个n次循环,而内层套一个分治策略下的㏒n复杂度的循环,该思考方法犯了一个原则性错误,那就是构建二叉堆是自下而上的构建,每一层的最大纵深老是小于等于树的深度的,所以,该问题是叠加问题,而非递归问题。那么换个方式,假如咱们自上而下创建二叉堆,那么插入每一个节点都和树的深度有关,而且都是不断的把树
相关文章
相关标签/搜索