zoukankan      html  css  js  c++  java
  • 美团

    vector push_back的复杂度

    简单分析如下:

        考虑vector每次内存扩充两倍的情况。

        如果我们插入N个元素, 则会引发lgN次的内存扩充,而每次扩充引起的元素拷贝次数为

                                          2^0,  2^1, 2^2, ..., 2^lgN.

        把所有的拷贝次数相加得到

                        2^0 + 2^1 + 2^2 + ... + 2^lgN = 2 * 2^lgN - 1 约为 2N次

        共拷贝了N次最后一个元素, 所以总的操作大概为3N

        所以, 每个push_back操作分摊3次, 是O(1) 的复杂度。

        md傻了,当时答的是n^2。常数插入是n^2

    静态链接,动态链接 , 区别,动态链接怎么做到 运行时 链接的

    找时间总结下。(面试前一天刚看的,我吐了

    map 底层 , 插入, 查询 复杂度 

    查找logn.

    如果插入单个元素且无暗示,时间复杂度为 O(logn),其中 n 为容器的大小。

    如果插入多个元素,时间复杂度为 O(nlogn).

    vector  1.5倍扩容 2 倍扩容

    对不起,我开的头,解释了半天还没解释明白, 大概就是1.5倍空间换时间 , 2倍时间换空间

    https://blog.csdn.net/bryant_xw/article/details/89524910 贴个大佬的讲解

    哈希冲突解决方法 ,unordered_map 底层实现

    多线程需要保护哪些资源,为什么,地址区分为哪几个部份。

    effective c++ 学到了什么

    自闭好几天了,菜的真实

  • 相关阅读:
    分享一份Java架构师学习资料,2019年最新整理!
    Spring Boot 最核心的 25 个注解,都是干货!
    推荐一款接口 API 设计神器!
    题库
    杂乱的知识点
    mysql查询疯狂41例
    mysql你问我答
    可能出现的面试题
    SQLALchemy
    基于蓝图的完整的Flask项目
  • 原文地址:https://www.cnblogs.com/DreamKill/p/12573948.html
Copyright © 2011-2022 走看看