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

数据结构----效率问题

数据结构----效率问题

一.衡量效率

1.衡量效率的两个维度

1.时间维度:时间复杂度:Time Complexity

时间复杂度是代码总的运行次数(粗糙)

2.空间维度:空间复杂度:Space Complexity

空间复杂度是额外申请的空间

3.注意:

​ 1.复杂度表示方法为 O()

  1. 如果时间和空间不能同时达到一个理想状态,时间优先,用空间换时间 。一些特殊的应用场合会用空间换时间

  2. 一般算循环的时间复杂度,看循环体执行几次就可以

    也可以看代码总执行次数是看总共执行了多少条语句

2.复杂度要求

1.多项级的运算结果,只保留最大项(最高次幂)

2.常系数省舍去

3.如果程序在有限棵树的资源消耗内即可完成(与n无关),那么复杂度为O(1)

3.看下面代码判断时间复杂度

//时间复杂度为 O(n)
for(int i=0;i<n;i++){cout<<i<<endl;
}//时间复杂度为 O(log2的n次方)
for(int i=1;i<=n;i*=2){cout<<i<<endl;
}//时间复杂度为 O(n的平方)
for(int i=1;i<=n;i++){for(int j=1;j<=i;j++){cout<<i<<"  "<<j<<endl;}
}//时间复杂度为 O(n的立方)
for(int i=1;i<=n;i++){for(int j=1;j<=i;j++){for(int k=1;k<=j;k++){cout<<i<<"  "<<j<<endl;}}
}

6.关于复杂度计算的一些经验性结论

1.单纯的顺序和选择结构,时间复杂度为O(1)

2.一般的一层循环时间复杂度为O(n)

3.两个并列的循环,时间复杂度max(O(m),O(n))

4.一般的两层循环嵌套,时间复杂度是O(n的平方)

5.一般会选择递归、分治、动态规划等方法提升时间效率(空间换时间)

http://www.lryc.cn/news/109000.html

相关文章:

  • 【BASH】回顾与知识点梳理(五)
  • PCL点云处理之最小二乘空间直线拟合(3D) (二百零二)
  • 大数据课程G1——Hbase的概述
  • 第三章 图论 No.2单源最短路之虚拟源点,状压最短路与最短路次短路条数
  • 汉诺塔问题
  • Java on Azure Tooling 6月更新|标准消费和专用计划及本地存储账户(Azurite)支持
  • Prometheus(八)-网络嗅探-黑盒监控
  • modbus TCP 通信测试
  • GDB Debug
  • 【项目流程】前端项目的开发流程
  • JS监听浏览器关闭、刷新及切换标签页触发事件
  • Unity 引擎做残影效果——3、顶点偏移方式
  • 【Linux】权限
  • Excel导入日期格式时自动转为五位数文本
  • Mac使用brew安装软件报错
  • Android 实现MQTT客户端,用于门禁消息推送
  • 跨境电商的广告推广怎么做?7个方法
  • 《Java-SE-第二十八章》之CAS
  • git之reflog分析
  • 《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(18)-Fiddler如何接口测试,妈妈再也不担心我不会接口测试了
  • Oracle open JDK和 Amazon Corretto JDK的区别
  • Spark写PGSQL分区表
  • Git 命令行登录
  • 性能分析记录
  • Java反射学习(大综合)
  • Vite+Vue3 开发UI组件库并发布到npm
  • vue- form动态表单验证规则-表单验证
  • FPGA学习—通过数码管实现电子秒表模拟
  • 区块链媒体发稿:区块链媒体宣发常见问题解析
  • openGauss学习笔记-28 openGauss 高级数据管理-NULL值