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

数据结构--准备知识

一.算法效率

算法效率分为两种:第一种为时间效率,第二种为空间效率。时间效率称为时间复杂度,空间效率称为空间复杂度。时间复杂主要衡量一个算法的运行速度,空间复杂度主要衡量一个算法所需的 额外的空间(现在不需要特别关注,现在的磁盘空间特别大

二.时间复杂度

1.概念:

算法中基本操作的执行次数,为算法的复杂度

2.大O的渐进表示法

算法复杂度存在最好、平均、最坏情况:

最坏情况:任意输入规模的最大运行次数(上界)

平均情况:任意输入规模的期望运行次数

最好情况:任意输入规模的最小运行次数(下界)

例如:    在一个长度为N数组中搜索一个数据x

最好情况:1次找到

最坏情况:N次找到

平均情况:N/2次找到

在实际情况中,我们并不需要精确的执行次数,一般关注最坏情况,用大O的渐进表示法表示

大O的渐进表示法规则:

1、用常数1取代运行时间中的所有加法常数

2、在修改后的运行次数函数中,只保留最高阶项。

3、如果最高阶项存在且不是1,则去除与这个项目相乘的常数。得到的结果就是大O阶。

举例:

三.空间复杂度

空间复杂度是算法在运行过程中临时占用存储空间大小(即新增变量的个数)。也使用大O的渐进表示法

举例:

四.包装类(Java最开始讲过)

再Java中,由于基本类型不是继承于Object类,为了在泛型代码中支持基本类型,所以个每个基本类型都对应一个基本类型

1.装箱和拆箱

装箱:将基本类型变为包装类型的过程,分为自动装箱和显示装箱

拆箱:将包装类型变为基本类型的过程,分为自动拆箱和显示拆箱

举例:

注意:

五.泛型

概念:从代码上讲就是对类型实现了参数化

主要目的:就是指定当前的容器,要持有什么类型的对象。让编译器去做检查。此时,就需要把类型,作为参数传递。需要什么类型,就传入什么类型。

语法:

利用Object举例:

利用泛型举例:

六.泛型的上界

语法·:

举例:

接口也是如此:

七.泛型方法

语法:

举例:

八.擦除机制

概念:在编译的过程中,将所有的泛型类型T替换成他的上界类型(默认为Object)

http://www.dtcms.com/a/282279.html

相关文章:

  • 随机链表的复制数据结构oj题(CM11)
  • SOTI MobiControl vs EasyControl:MDM 解决方案对比 —— 理解差异与价值
  • batchnorm1d,layernorm,revin区别
  • 关于程序=数据结构+算法这句话最近的一些思考
  • 【数据结构】「栈」(顺序栈、共享栈、链栈)
  • iOS 抓包工具选择与配置指南 从零基础到高效调试的完整流程
  • 时序大模型为时序数据库带来的变革与机遇
  • Flutter 记录 使用ModalRoute获取参数
  • flutter app内跳转到其他安卓 app的方法
  • qt udp接收时 丢包
  • 安卓开发使用Android Studio配置flutter环境
  • 《Qt信号与槽机制》详解:从基础到实践
  • Flutter运行Android项目时显示java版本不兼容(Unsupported class file major version 65)的处理
  • 《Qt实战开发》:从计算器到音乐播放器的全栈实现指南
  • 7月16日作业
  • QOpenGLWidget自定义控件— 2D点云显示(支持平移、放缩、绘制网格)
  • 桥下的蓝色风景线
  • 数据库连接池调优以及常见问题
  • SSM框架学习——day3
  • 如何解决WordPress数据库表损坏导致的错误
  • Python 测试全景:单元测试、集成测试与端到端测试实战指南
  • 【收银系统源码】-适用于零售餐饮连锁多门店
  • Docker化Web服务部署全景指南:从基础服务器到企业级应用
  • VUE指令大全
  • 使用Node搭建一个直播服务器,实时直播当前桌面
  • WAMP允许远程访问
  • WAN技术
  • 基于 Python/PHP/Node.js 的淘宝 API 商品数据抓取开发教程
  • 高德mcp结合智能体生成旅游计划推荐
  • Typecho插件开发:自定义表单验证规则addRule实战指南