0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
2016-10-12 18:34
中南大学 Java 徘徊的路人甲:建堆O(n),删除O(logn),你想一下,现在有一个现成的堆,用数组存储表示,删除的话删掉堆顶元素,将数组最后一个数放到堆顶,整个堆里就只有这个新交换来的结点可能不满足堆的性质,那么只需要将这个结点依次向下转移,直到转移到符合堆性质的地方,转移的次数跟堆的高度有关,也就是O(logn),删除结点是有一个结点可能不满足堆性质,要调整,建堆过程是所有结点不满足要调整,所以,如果采用暴力建堆,也就是初始数组为空,每次插入一个结点然后调整满足堆性质,复杂度就是O(NlogN),不过一般采用自底向上的下滤,对内部节点依次下滤,复杂度是O(n),建议看看清华邓俊辉的mooc视频,数据结构,讲的很清晰
0 点赞 评论 收藏
分享
2016-09-10 10:41
中南大学 Java 0 点赞 评论 收藏
分享
关注他的用户也关注了: