当前位置: 首页 > article >正文

C++ 数据结构:基本概念、时间复杂度、空间复杂度

数据结构:是指数据的存储以及存储方式,决定了数据的物理结构和逻辑结构,良好的数据结构可以提高程序的存储、查询、修改效率,降低复杂度和错误率。

算法:解决问题的步骤和方法,一个好的算法应具有高效、简洁、可维护性和正确性

时间复杂度:在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随着n的变化情况来确定T(n)的数量级,算法的时间复杂度,就是算法的时间度量,记为O,T(n) = O(f(n)),我们称为大O记法。

时间复杂度往往会联系到一个函数,自变量表示规模,因变量表示执行时间(执行次数,也就是n次或n2次)

如何判断做题中的时间复杂度呢?

1,总执行次数的话,需要小于10的6次方,这个就可以了。

2,确定问题规模

3,套公式,当n<12 , 可能需要阶乘级别的算法

                     当n<16 , 可能需要状态压缩的算法 O(2的n次方),O(n*2的n次方),O(n的平方乘以2的n次方)     

                     当n<30 , 可能需要O(n的四次方)的算法

                     当n<100 , 可能需要O(n的三次方)的算法

                     当n<1000, 可能需要O(n的二次方)的算法

                     当n<100000 , 可能需要O(n乘以log以2为底n)、O(n乘以(log以2为底n)的平方)的算法

                     当n<1000000 , 可能需要O(n)或O(根号n)级别的算法

空间复杂度:

常见数据结构的空间复杂度可见下

顺序表 O(n):其中n是顺序表的长度

链表 O(n):其中n是链表的长度

栈 O(n) :其中n是栈的最大深度

队列 O(n):其中n是队列的最大长度

树 O(n):其中n是树的最大深度

图 O(n+m) :其中n是图中顶点的数量, 其中m是图中边的数量


http://www.kler.cn/a/504855.html

相关文章:

  • HTML中最基本的东西
  • mac 安装docker
  • HTML5 加载动画(Loading Animation)
  • day07_Spark SQL
  • 《解锁鸿蒙Next系统人工智能语音助手开发的关键步骤》
  • 源码安装httpd2.4
  • YOLOv9改进,YOLOv9自研检测头融合HAttention用于图像修复的混合注意力检测头
  • Leetcode 474. 一和零 多重背包问题,动态规划
  • QT 键值对集合QMap
  • 【WEB】网络传输中的信息安全 - 加密、签名、数字证书与HTTPS
  • 标准通上线标准「全文检索」功能,提升查询精准度!
  • Android控件底色蓝色无法修改、高版本无法安装app、找不到xml、找不到java文件、目录不显示等问题
  • windows下编译php源码
  • 基于PyQt - 6的医疗多模态大模型医疗研究系统中的创新构建与应用(上 .文章部分)
  • 神经网络
  • TCP 连接状态标识 | SYN, FIN, ACK, PSH, RST, URG
  • 链路追踪SkyWalking
  • Shell正则表达式与文本处理三剑客(grep、sed、awk)
  • MongoDB 大俗大雅,高端的知识讲“通俗” -- 2 嵌套和引用
  • 科研总结系列|2-GPT学术写作提示词集锦手册
  • mysql 双主双从 + proxysql 代理
  • fpga系列 HDL:跨时钟域同步 双触发器同步器
  • 在 Webpack 中使用 预加载(Preloading) 技术可以通过动态导入(import())以及指定预加载的方式来进行优化
  • 新版AndroidStudio通过系统快捷创建带BottomNavigationView的项目踩坑记录
  • 服务器、电脑和移动手机操作系统
  • HDMI接口