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

初识集合和数据结构

目录

  • 初识集合框架
  • 数据结构基本概念和术语
    • 数据
    • 数据元素
    • 数据项
    • 数据对象
    • 前四者的关系
    • 数据结构
    • 逻辑结构和物理结构
      • 逻辑结构
      • 物理结构
  • 算法
    • 算法设计要求

初识集合框架

  1. Java的集合框架也可被称为容器,是定义在Java.util包下的一些接口和实现类。
  2. 其就是将多个元素存储到一个单元内,并对该单元内的元素进行增删改查(CRUD)
  3. 这些容器的背后都是对某种数据结构的封装,具体的后续慢慢介绍。
    在这里插入图片描述

数据结构基本概念和术语

数据

数据是描述客观事物的符号,是可以被计算机识可以操作的对象,能被计算机识别并可输入到计算机的符号集合

数据元素

数据元素是组成数据的,有一定意义的基本单位。在计算机中通常作为整体处理(也可称为记录)
比方说在畜类中,牛,马,羊等算是畜类的数据元素

数据项

一个数据元素可以由若干的数据项组成。数据项是不可分隔的最小单位。
比方说人这个数据元素可以包含嘴巴,鼻子,耳朵,电话,邮箱等数据项。

数据对象

数据对象是性质相同的数据元素的集合,是数据的子类。性质相同是指数据元素具有相同数量和类型的数据项。我们经常将数据对象简称为数据。

前四者的关系

在这里插入图片描述
查阅网上资料,我觉得举例子更好理解
在这里插入图片描述
以上是两张表,这两张表就是数据
每个表就是一个数据对象
每个表中的每一行就是数据元素
而每个表中的字段就表示数据项

数据结构

不同数据元素之间存在的关系,我们称为结构。数据结构指相互之间存在一种或多种特定关系的数据元素的集合。那么之间的关系究竟是什么呢?

逻辑结构和物理结构

逻辑结构

逻辑结构指的是数据对象中的数据元素的关系。逻辑结构分为下面这四种

  1. 集合结构
    集合中的数据元素除了同属于一个集合外没有什么别的关系,每个元素之间平等。
    在这里插入图片描述
  2. 线性结构
    线性结构的数据元素是一对一的关系。
    在这里插入图片描述
  3. 树形结构
    存在一对多的层次关系
    在这里插入图片描述
  4. 图形结构
    图形结构中数据元素的关系是多对多的
    在这里插入图片描述
    注意点:
  5. 画图时,每个数据元素要要看成一个结点,并用圆圈表示。
  6. 元素之间的逻辑关系用连线表示,如果有方向,则连线要带箭头。

物理结构

物理结构是指数据元素的逻辑结构在计算机中存储的方式。同时,物理结构也可以称为存储结构

  1. 顺序存储
    将数据元素存储到连续的存储单元中,数据间逻辑关系和物理关系一样。
    在这里插入图片描述

  2. 链式存储
    数据元素可以存放在不同的存储单元内,存储单元可以是连续的也可以是不连续的。
    在这里插入图片描述

算法

算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
算法有五个基本特性(输入,输出我合起来描述的,所以我下面就写了四个)

  1. 输入输出
    算法具有0个或者多个输入,至少有1个或多个输出。
  2. 有穷性
    算法在执行有限的步骤后会自动结束,而不会一直循环。当然,每个步骤还要在有限的时间内完成。
  3. 确定性
    算法的每个步骤都要有确定含义,不可出现二义。
  4. 可行性
    算法的每一步都是可行的。

算法设计要求

1.正确性
2.可读性
3.健壮性:输入数据不合法时,算法会进行相应处理,而不是产生异常或者产生出莫名其妙的结果。
4.时间效率高存储容量低

程序设计=数据结构 + 算法

相关文章:

初识集合和数据结构

目录 初识集合框架数据结构基本概念和术语数据数据元素数据项数据对象前四者的关系数据结构逻辑结构和物理结构逻辑结构物理结构 算法算法设计要求 初识集合框架 Java的集合框架也可被称为容器,是定义在Java.util包下的一些接口和实现类。其就是将多个元素存储到一…...

cocos creator 3.x中动态加载 resources 文件夹下的图片时提示找不到

文件目录如下 类型为spriteFrame 代码案例 图片设置为 sprite-frame、texture 或其他图片类型后,将会在 资源管理器 中生成一个对应类型的资源。但如果直接加载 equipments/testea,得到的类型将会是 ImageAsset,必须指定路径到具体的子资源…...

第九十八周周报

学习时间: 2024.7.27-204.8.3 学习产出: 这周主要在按照审稿人的意见修改论文,由于有个模型保存的文件找不到了,所以重新训练花了点时间,目前已经把修改后的论文和cover letter发给杨老师了。...

程序员找工作之数据结构面试题总结分析

文章目录 1. 数据结构的基本概念与分类2. 数据结构的存储与表示3. 数据元素的存储与关系4. 存储结构的选择与考量5. 特定数据结构的定义与特性6. 数据结构操作与应用7. 数组与存储8. 特定数据结构的存储与访问 程序员在找工作面试中,数据结构方面可能会被问到的问题…...

设置provider解决maven找不到JUnit 5测试样例

问题描述 尝试复现一个用大模型生成测试样例的工作&#xff0c;但使用maven生成的JUnit 5测试样例死活不执行。又不想用命令行运行&#xff0c;因此进行排查 基本知识 <dependencies> junit-jupiter-api JUnit 5写代码时调用的库 junit-jupyter-engine 运行JUnit 5测…...

php反序列化靶机serial实战

扫描ip,找到靶机ip后进入 他说这是cookie的测试网页&#xff0c;我们抓个包&#xff0c;得到cookie值 base64解码 扫描一下靶机ip的目录 发现http://192.168.88.153/backup/&#xff0c;访问 下载一下发现是他的网页源码 通过代码审计&#xff0c;发现 通过代码审计得知&…...

类型推断技术及仓颉语言实践

史磊 仓颉语言类型推断技术专家 一、一种看待类型系统的方式 一门编程语言一定得包含类型系统吗&#xff1f; 这个问题今天看来可能显而易见&#xff0c;一个程序没有类型的话还能算是个完整、正确的程序吗&#xff1f;但是其实关于类型系统的作用&#xff0c;一直是存在两种…...

职场生存秘籍:16条黄金法则

作者简介&#xff1a;一名计算机萌新、前来进行学习VUE,让我们一起进步吧。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;我叫于豆豆吖的主页 写在前面 在这个瞬息万变的时代&#xff0c;职场不仅是实现个人价值与梦想的舞台&#xff0c;更是一…...

Flask 介绍

Flask 介绍 为什么要学 Flask框架对比设计哲学功能特点适用场景学习曲线总结 Flask 的特点Flask 常用扩展包Flask 的基本组件Flask 的应用场景官方文档官方文档链接文档内容概述学习建议 Flask 是一个使用 Python 编写的轻量级 Web 应用框架。它旨在让 Web 开发变得快速、简单且…...

JAVA基础知识点3 (String 和 StringBuffer 以及 StringBuilder 的特点以及区别)

1&#xff0c;String 和 StringBuffer 以及 StringBuilder 的特点 &#xff08;1&#xff09;String的特点&#xff1a;String是final修饰的字符序列是不可改变的&#xff0c; 是字符串常量&#xff0c;一旦初始化就不可以被更改,因此是线程安全的 因为是常量每次对其操作都会…...

2024年8月AI内容生成技术的现状与未来:从文生文到跨模态交互的全景分析

2024年8月AI内容生成技术的现状与未来&#xff1a;从文生文到跨模态交互的全景分析 大家好&#xff0c;我是猫头虎&#xff01;&#x1f680; 随着AI在内容生成领域的爆发式发展&#xff0c;从2022年末开始&#xff0c;AI生成技术已经走过了文生文&#xff08;AIGC&#xff09…...

File 34

package File;import java.awt.*; import java.io.File;public class file1 {public static void main(String[] args) {//创建FILE对象&#xff0c;指代某个具体的文件//路径分隔符File f1new File("C:/Users/SUI/Desktop/kaishi/nih.txt");// File f1new File(&quo…...

AI全知道-Embedding model中的Vector知识点

在嵌入模型(Embedding Model)中,向量(Vector)是核心概念之一。向量表示法不仅是数学中的基本工具,也是机器学习和深度学习中处理高维数据的关键手段。本文将深入探讨向量在嵌入模型中的作用、表示方法、计算和应用等知识点。 一、向量的基本概念 向量是一个具有方向和大…...

Qt 学习第四天:信号和槽机制(核心特征)

信号和槽的简介 信号和插槽用于对象之间的通信。信号和插槽机制是Qt的核心特征&#xff0c;可能是不同的部分大部分来自其他框架提供的特性。信号和槽是由Qt的元对象系统实现的。介绍&#xff08;来自Qt帮助文档Signals & Slots&#xff09; 在GUI编程中&#xff0c;当我们…...

跳跃游戏Ⅱ C++简单代码

给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i] i j < n 返回到达 nums[n - 1] 的最…...

Gitlab中access token 和Deploy token的区别

在GitLab中&#xff0c;Access Token和Deploy Token是两种不同类型的令牌&#xff0c;用于不同的目的。以下是它们的主要区别&#xff1a; ### Access Token 1. **用途**&#xff1a; - 用于用户身份验证&#xff0c;允许用户以编程方式访问GitLab API。 - 可以用于克隆…...

【多线程】线程的五种创建方法

文章目录 线程在 Java 代码中编写多线程程序Thread 标准库 创建线程的写法1 . 继承 Thread 类代码回调函数休眠操作&#xff1a;sleep()抢占式执行观察线程jconsoleIDEA 内置调试器 2 . 实现 Runnable 接口代码 3. 匿名内部类创建 Thread ⼦类对象代码匿名内部类 4.匿名内部类创…...

关闭窗口工具类 - C#小函数类推荐

此文记录的是一个关于关闭窗口工具类。 /***关闭窗口工具类Austin Liu 刘恒辉Project Manager and Software DesignerE-Mail: lzhdim163.comBlog: http://lzhdim.cnblogs.comDate: 2024-01-15 15:18:00使用方法&#xff1a;CloseWindowUtil.CloseWindow(this.Handle);***/n…...

Xilinx FPGA 原语解析(一):IBUFDS_GTE3 差分时钟输入缓冲器

目录 1.使用说明 2.实例化代码 3.参数解释 4.端口连接 1.使用说明 IBUFDS_GTE3 是Xilinx FPGA 中用于高速接口的差分时钟信号输入缓冲器。 BUFDS_GTEx&#xff0c;x2/3/4&#xff08;不同系列的FPGA x的值不同&#xff09;&#xff0c;其中UltraScale使IBUFDS_GTE3…...

力扣SQL50 患某种疾病的患者 正则表达式

Problem: 1527. 患某种疾病的患者 在SQL查询中&#xff0c;REGEXP 是用于执行正则表达式匹配的操作符。正则表达式允许使用特殊字符和模式来匹配字符串中的特定文本。具体到你的查询&#xff0c;^DIAB1|\\sDIAB1 是一个正则表达式&#xff0c;它使用了一些特殊的通配符和符号。…...

毕业论文党必看!用MathType实现Word公式自动编号的3种隐藏技巧

毕业论文公式排版终极指南&#xff1a;MathType高效编号技巧全解析 在撰写理工科毕业论文或学术论文时&#xff0c;公式排版往往是让研究者头疼的环节。传统手动编号不仅效率低下&#xff0c;更会在修改文档时引发连锁灾难——一个公式的增删可能导致全篇编号错乱。MathType作为…...

LFM2.5-1.2B-Thinking-GGUF部署指南:ss端口监听+curl health检测标准化运维流程

LFM2.5-1.2B-Thinking-GGUF部署指南&#xff1a;ss端口监听curl health检测标准化运维流程 1. 平台简介 LFM2.5-1.2B-Thinking-GGUF是Liquid AI推出的轻量级文本生成模型&#xff0c;特别适合在资源有限的环境中快速部署和使用。这个镜像内置了GGUF模型文件和llama.cpp运行时…...

打破BIM模型Web化壁垒:Revit2GLTF的轻量化转换技术革新

打破BIM模型Web化壁垒&#xff1a;Revit2GLTF的轻量化转换技术革新 【免费下载链接】Revit2GLTF view demo 项目地址: https://gitcode.com/gh_mirrors/re/Revit2GLTF 在数字化建筑设计流程中&#xff0c;BIM模型的高效协作与展示一直是行业痛点。设计团队常常面临这样的…...

OpenClaw多任务调度:GLM-4.7-Flash并行处理文件与邮件

OpenClaw多任务调度&#xff1a;GLM-4.7-Flash并行处理文件与邮件 1. 为什么需要多任务调度 上周我需要同时处理两个紧急任务&#xff1a;整理三个月积累的会议录音文字稿&#xff0c;以及给二十多位合作伙伴发送定制化跟进邮件。手动操作需要至少6小时&#xff0c;而第二天早…...

5个高效能技巧:人工智能术语库全场景应用从入门到精通

5个高效能技巧&#xff1a;人工智能术语库全场景应用从入门到精通 【免费下载链接】Artificial-Intelligence-Terminology-Database 这个仓库包含一个关于人工智能术语的数据库。适合AI研究者、学生以及希望了解AI专业术语的人士。特点是包含大量AI相关词汇&#xff0c;有助于理…...

苹果内购订阅的“时间陷阱”:如何正确处理UTC与东八区的时间转换(附Java代码)

苹果订阅时间戳的时区陷阱&#xff1a;UTC与东八区转换的实战指南 1. 为什么时间戳处理如此重要&#xff1f; 在苹果应用内购&#xff08;IAP&#xff09;订阅系统中&#xff0c;时间戳处理看似简单&#xff0c;实则暗藏玄机。许多开发者都曾踩过这样的坑&#xff1a;用户明明购…...

SEO_快速提升流量的五个SEO关键操作步骤

<h3 id"seoseo">SEO:快速提升流量的五个SEO关键操作步骤</h3> <p>在数字化时代&#xff0c;网站的流量直接影响着企业的市场竞争力。如何让你的网站在搜索引擎上排名靠前&#xff0c;吸引更多的访客&#xff0c;这是每个网站运营者都面临的重要课题…...

H3C无线调优案例

用户报无线经常掉线&#xff0c;用户现场无线用的H3C 首先登录无线控制器搜集对应接入体验差的AP的诊断日志&#xff0c;从日志中可以看到AP有线上行口的组播广播包数量远远超过了单播报文&#xff1b;没有CRC错误报文&#xff0c;说明网线质量没有问题。接着看&#xff1a;我们…...

G-Helper:释放华硕笔记本性能潜能的轻量级控制工具

G-Helper&#xff1a;释放华硕笔记本性能潜能的轻量级控制工具 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地址: …...

OpenClaw+GLM-4.7-Flash成本对比:自建模型比API调用节省30%token消耗

OpenClawGLM-4.7-Flash成本对比&#xff1a;自建模型比API调用节省30%token消耗 1. 为什么需要关注token消耗 上周五凌晨两点&#xff0c;我的OpenClaw突然停止了周报自动化任务。查看日志发现是API额度耗尽——当月累计消耗已超过商用GLM-4.7-Flash的套餐限额。这次意外让我…...