vector的push_back()结合扩容时的时间复杂度思考

vector每次遇到2的次幂时,要扩容,扩容就涉及旧的数据拷贝问题,那么push_back平均复杂度多大?

每次插入代价是Ci,i为第i次插入,扩容不管多大,不考虑扩容消耗,而是考虑

vector的push_back()结合扩容时的时间复杂度思考_第1张图片
想象满一棵二叉树,最后一层节点数量其实是2的lgN是O(N)级别(不到N),而前面所有节点之和是ON级别,所以后面是2N。所以也能理解为3N,除以N次插入,其实是O(3n)。

你可能感兴趣的:(vector时间复杂度)