当前位置: 首页 > 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.lryc.cn/news/589956.html

相关文章:

  • SSM框架学习——day3
  • 二代身份证识别技术的发展:从机器学习到深度学习
  • RocketMQ性能优化实战指南:原理与实践
  • WebSocket 防护的重要性及应对策略:从原理到实战
  • Java 二维数组详解:从基础语法到实战应用,彻底掌握多维数据结构
  • Cursor 接入api中转平台流程
  • es 启动中的一些记录
  • 【Deepseek-R1+阿里千问大模型】四步完成本地调用本地部署大模型和线上大模型,实现可视化使用
  • web前端用MVP模式搭建项目
  • 外网访问禅道软件项目管理系统,简单几步将本地内网IP端口设置互联网在线用
  • 第3章 Excel表格格式设置技巧
  • Node.js:创建第一个应用
  • 重塑旧物价值,引领绿色潮流——二手回收小程序系统开发纪实
  • 小程序中状态管理Redux
  • 【uni-ui】hbuilderx的uniapp 配置 -小程序左滑出现删除等功能
  • 【官方回复】七牛云开启referer防掉链后小程序访问七牛云图片显示403
  • JAVA AI+elasticsearch向量存储版本匹配
  • 2025年应用力学、机械工程与能源国际会议(AMMEE 2025)
  • Python设计模式深度解析:单例模式(Singleton Pattern)完全指南
  • 从0到1开发网页版五子棋:我的Java实战之旅
  • Liunx练习项目6-创建dns服务器
  • 自动控制原理知识地图:舵轮、路径与导航图
  • Linux权限管理:玩转root与用户组
  • CoreNext主题源码 V1.7.1开心版 WordPress轻量高性能主题
  • TCP 三次握手与四次挥手笔记
  • ZYNQ Petalinux系统FLASH固化终极指南:创新多分区与双系统切换实战
  • 人工智能之数学基础:神经网络之多样本矩阵参数求导
  • 【深度学习】神经网络-part2
  • linux中查看那些端口正在被使用
  • Linux运维新手的修炼手扎之第21天