XZ Blog XZ Blog
首页
  • 人体姿态估计
  • 2D-3D-Lifting
  • 动作质量评估
  • 基于RGBD视觉信息的异常行为识别
  • 基于RGB视频的行为识别
  • 大模型应用
  • 网络结构

    • Transformer
    • GCN
    • Graph Transformers
    • Diffusion Model
  • 深度学习
  • 论文解读
  • 后端开发
  • Git
  • 博客搭建
  • Debug
  • 面试
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

xzhouzeng

@渐行。
首页
  • 人体姿态估计
  • 2D-3D-Lifting
  • 动作质量评估
  • 基于RGBD视觉信息的异常行为识别
  • 基于RGB视频的行为识别
  • 大模型应用
  • 网络结构

    • Transformer
    • GCN
    • Graph Transformers
    • Diffusion Model
  • 深度学习
  • 论文解读
  • 后端开发
  • Git
  • 博客搭建
  • Debug
  • 面试
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 后端开发

    • cmake介绍
    • \{}统一初始化方
    • C++11新特性
    • C++标准推荐使用标准库头文件
    • C++动态内存分配和静态的区别
    • C++类函数后面加const的作用
    • C++类和结构区别
    • C++内存区域
    • nullptr与NULL
    • priority_queue使用
    • string , cstring , string h 的区别
    • using与typedef定义别名区别
    • vector中[]和at访问区别
    • 常量指针和指针常量
    • 空类大小及相关介绍
    • 容器emplace与push操作
    • 数据结构操作——时间复杂度
      • 智能指针(Smart Pointers)
      • 最大堆的实现
    • Git

    • 博客搭建

    • Debug

    • python开发

    • 技术
    • 后端开发
    xzhouzeng
    2023-03-20
    目录

    数据结构操作——时间复杂度

    # 数据结构操作——时间复杂度

    Created: March 19, 2024 12:34 PM

    下面是一些C++中常见的数据结构或容器及其对于访问(Access)、插入(Insertion)、删除(Deletion)等操作的时间复杂度概览。请注意,这些时间复杂度是大致的,并且可能基于最坏情况(Worst case)或平均情况(Amortized/Expected)来表示。

    # 动态数组(std::vector)

    • 访问(通过索引):O(1)
    • 插入(末尾):O(1) 平均;O(n) 最坏情况(需要重新分配时)
    • 删除(末尾):O(1)
    • 插入/删除(任意位置):O(n)(需要移动元素)

    # 双端队列(std::deque)

    • 访问(通过索引):O(1)
    • 插入/删除(头部或尾部):O(1)
    • 插入/删除(任意位置):O(n)(需要移动元素)

    # 列表(std::list)

    • 访问(通过索引):O(n)
    • 插入/删除(任意位置):O(1)(已有迭代器到目标位置)

    # 前向列表(std::forward_list)(C++11)

    • 访问(通过索引):不支持直接索引访问
    • 插入/删除(任意位置):O(1)(已有迭代器到目标位置)

    # 栈(std::stack)

    • 访问(顶部元素):O(1)
    • 插入/删除(顶部元素):O(1)

    # 队列(std::queue)

    • 访问(队首元素):O(1)
    • 插入(尾部)/删除(头部):O(1)

    # 优先队列(std::priority_queue)

    • 访问(最大元素):O(1)
    • 插入:O(log n)
    • 删除(最大元素):O(log n)

    # 关联容器(std::set, std::map)

    • 访问/插入/删除:O(log n)

    # 无序关联容器(std::unordered_set, std::unordered_map)(C++11)

    • 访问/插入/删除:O(1) 平均;O(n) 最坏情况(哈希冲突)

    这些时间复杂度提供了在选择特定数据结构或容器时考虑其性能特征的基础。不同的数据结构为不同的应用场景提供了优化,选择正确的结构对于实现高效的算法和程序至关重要。

    编辑 (opens new window)
    容器emplace与push操作
    智能指针(Smart Pointers)

    ← 容器emplace与push操作 智能指针(Smart Pointers)→

    最近更新
    01
    VideoLLMs
    03-20
    02
    Video2Script
    12-07
    03
    多模态
    11-09
    更多文章>
    Theme by Vdoing | Copyright © 2022-2024 xzhouzeng | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式