数据结构:时间复杂度汇总

2023-11-15

顺序表
插入操作:平均移动n/2个元素,则时间复杂度为O(n)
表尾插入:时间复杂度为O(1)
删除操作:顺序表中删除任意一个元素,平均需要有(n-1)/2个元素移动,时间复杂度为O(n)
查找操作:平均比较次数(n+1)/2,时间复杂度为O(n)
数据交换位置:时间复杂度O(n)
删除值为x的元素:时间复杂度O(n)
有序表改成无序表:时间复杂度O(n)
求两个等长升序序列A,B的中位数:时间复杂度O(n)
顺序表按值查找:有序时,顺序表可以折半查找,O(log₂n)
无序时,都为O(n)
按序号查找:顺序表为O(1),链表为O(n)
链表
插入操作:时间复杂度T(n)=O(1)
删除操作:时间复杂度T(n)=O(1)
头插法:时间复杂度T(n)=O(1)
尾插法:时间复杂度T(n)=O(n)
按值或序号查找:时间复杂度T(n)=O(n)
循环双向链表查找:时间复杂度T(n)=O(n)
双向循环链表插入和删除:时间复杂度T(n)=O(1)


出栈、入栈的时间复杂度为T(n)=O(n)
链式存储结构的时间复杂度均为T(n)=O(1)

普里姆算法:时间复杂度O(n2)
折半查找:时间复杂度为
排序
直接插入排序
最好情况:初始有序,为O(n);
最坏情况:初始逆序,为O(n2);
平均时间复杂度T(n)= O(n2)

折半插入排序:时间复杂度为
希尔排序:最坏情况下O(n2)
冒泡排序
最好时,基本有序,第一趟比较n-1次,移动0次,所以最好为O(n);
当初始为逆序时,需要进行n-1趟排序,第i趟进行n-i次比较,而且每次比较都需要移动元素3次来交换,最坏时间复杂度为O(n²),平均也为O(n²)
快速排序:最好为 ,最坏为O(n2),平均为
简单选择排序:时间复杂度T(n)=O(n2)
堆排序
堆的插入、删除操作:时间复杂度为 O(log2⁡n)最好最坏平均为 O(log2⁡n)
归并排序:时间复杂度: O(nlog2⁡n)

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据结构:时间复杂度汇总 的相关文章

随机推荐

  • 2022年最新一篇文章教你青龙面板拉库,拉取单文件,安装依赖,设置环境变量,解决没有或丢失依赖can‘t find module之保姆教程(附带几十个青龙面板脚本仓库)

    没有安装青龙面板的先看我另外一篇教程2022年青龙面板部署完整版教程 多图 1 青龙面板拉库 先把配置文件config sh第20行改成我这样 GithubProxyUrl https pd zwc365 com cfworker 打开浏览
  • 已解决WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python

    已解决 pip升级报错 WARNING pip is configured with locations that require TLS SSL however the ssl module in Python is not availa
  • windows 7z命令行压缩

    windows 命令行用 7z 1 压缩一个文件夹 并排除其中一些文件和文件夹 参考 2 a 压缩的命令 r 递归 可能是压缩文件夹时用 但其实我试过没加这个参数 也能正常把文件夹内所有文件加进来 x 和 xr 排除一些文件 不加进最终压缩
  • 老司机带你入门Java基础概念

    因为学习所以收获 因为收获所以不寂寞 请关注 源码猎人 目录 Java简介 Java特性 Java环境概述 Java工作原理 面向对象 对象 类 方法 继承 封装 多态 变量 常见面试题 Java简介 Java是一门面向对象编程语言 Jav
  • jsp内置对象(自带的,不需要new也能使用的对象)9个

    1 out 向客户端输出内容 2 pageContext JSP页面容器 3 request 请求对象 存储客户端向服务端发送的请求信息 request数据只在同一次请求有效 request对象的常见方法 String getParamet
  • 仿lisp运算 测试通过

    LISP 语言唯一的语法就是括号要配对 形如 OP P1 P2 括号内元素由单个空格分割 其中第一个元素 OP 为操作符 后续元素均为其参数 参数个数取决于操作符类型 注意 参数 P1 P2 也有可能是另外一个嵌套的 OP P1 P2 当前
  • python有关vscode中报错 No module named 问题—pygame(亲测有效)

    在安装pygame中出现 module gt import pygame ModuleNotFoundError No module named pygame 问题 主要原因如下 1 没有安装pygame 1 终端输入pip install
  • php复选框实现单选

  • 视频相似性检测

    背景 完全一样的视频可以通过MD5判断 但视频可能因为压缩格式 缩放 明暗 尾部截断导致非完全一致 故需要对视频帧进行重复检测 非常相似定义 缩放 亮度 帧率 水印 格式变换等造成的视频差异 旋转的效果不佳 本文采用一秒一帧切帧 对每帧提取
  • 模型解释性:Lime包的使用

    1 模型可解释性 基于复杂数据挖掘方法构建的预测模型 通常存在 黑箱问题 导致其可解释性与可利用性降低 目前 机器学习模型可解释性总体上可分为2类 事前可解释性 指通过训练结构简单 可解释性好的模型或将可解释性结合到具体的模型结构中的自解释
  • boost::ptime的常用方法

    boost ptime的常用方法 主要介绍常用获取时间的方法 以及相互之间的转换 需要使用boost库 用到的头文件 boost timer timer hpp 和 boost date time hpp 获取本地时间 boost posi
  • Android:BaseAdapter的优化方案一览

    1 什么是数据适配器 用来建立数据源和数据渲染控件之间的关系 将数据的来源和数据的显示之间进行解耦 降低耦合性 2 BaseAdapter接口 BaseAdapter是一个抽象类 abstract 以下代码为android源码 public
  • Deep Java Library(四)使用DJL Serving部署JAVA模型 For Windows

    1 下载Windows版DJL Serving Windows版DJL Serving下载地址 https publish djl ai djl serving serving 0 23 0 zip 下载下来是一个zip压缩包 大约50M左
  • 一个好玩的编程小游戏—— 母牛生小牛

    题目 母牛从3 7岁初每年会生产1头小母牛 10岁后死亡 10岁任然存活 假设初始有一头刚出生的母牛 请问第n年有多少头母牛 年从第一年开始计数 注 第三年初会出生 第一头母牛 故第三年有两头母牛 第五年初 第三年出生的母牛会生产 故第五年
  • C语言之argument和parameter的区别

    The C Programming Language K R Page25 We will generally use parameter for a variable named in the parenthesized list in
  • STM32F4——ADC学习笔记

    OVR溢出错误 最近调试一个板子 使用ADC1采集多个通道 然后DMA传输到对应数组里 模仿STM32F1的写法后 一直出现OVR错误 溢出 网上看了各位大神的分析 里面有个比较关键的说DMA溢出 需要判断溢出的时候 重新配置DMA和再次启
  • ST-GCN论文分析

    Introduction 传统的骨架建模方法通常依赖手工制作的零件或遍历规则 因此表达能力有限 难以推广 新的动态骨架模型 通过自动从数据中学习时空模式 超越了以往方法的局限性 该公式不仅有更强的表达能力 而且有更强的泛化能力 早期使用骨架
  • IDEA Java1.8通过sqljdbc4连接sqlserver插入语句

    1 下载sqljdbc4 https mvnrepository com artifact com microsoft sqlserver jdbc sqljdbc4 4 0 下载后在IDEA放入仓库内 可以放在resources下 右键
  • 【Java基础】day14

    day14 一 什么是 RESTful 架构 REST 全称是 Representational State Transfer 中文意思是表征性状态转移 它首次出现在 2000 年 Roy Fielding 的博士论文中 Roy Field
  • 数据结构:时间复杂度汇总

    顺序表 插入操作 平均移动n 2个元素 则时间复杂度为O n 表尾插入 时间复杂度为O 1 删除操作 顺序表中删除任意一个元素 平均需要有 n 1 2个元素移动 时间复杂度为O n 查找操作 平均比较次数 n 1 2 时间复杂度为O n 数