墨烯的Java技术栈-数据结构与算法基础-010

news2025/1/9 2:37:05

(前言 这是在之前容器很多的不知名的名词 想着与其一个个解释不如直接重温一遍数据结构)

一.概念

程序 = 数据结构 +算法    程序的本质

数据结构经常可以说为计算机内功(心法)

而编程能力就是招式(法术)

考研 必考专业课 一共四门专业课 共150分

找工作更不用说:面试主要考核内容

概念上

概念性强,抽象

算法灵活,不易掌握

逻辑性强,算法设计很烧脑CPU

(1)集合结构

数据结构的研究内容

通常用计算机解决一共问题分三步走 1)具体问题抽象为数学模型 2)设计算法 3)编程,调试,运行

1)抽象数据模型->实质(分析问题 提取操作对象 找出操作对象之间的关系 用数学语言描述)->数据结构

类似数组

特点:数据元素间(你可以看java成类的属性)的关系(这个可以看成类似键值对)简单,计算复杂

2)线性结构

计算机更多用来非数值计算

就比如学生信息表

学号,姓名,性别,年龄,专业

操作对象:每位学生的信息(就上面学号那些)

操作对象:查询,插入,修改,删除(数据库基础四大操作)

操作对象之间的关系:线性关系(前面挨着后面 就比如说五子棋那样)         数据结构:线性数据结构,线性表(整体形成一个表)

还有各种管理系统在这方面用的就比较多(简历项目千万别弄各种管理系统)

3)树型结构

就比如 在从下面图中

可以明显看出像个倒过来的树一样

计算机的操作对象:各种学习与否状态,即描述人的学习信息

计算机的算法:行为,即选择学习或者不学习的策略使学习状态发生变化

操作对象之间的关系:非线性关系,树

这种无法理解的话 或者按(java基础001中)JVM JDK JRE三个关系文件夹关系

                                JDK

                开发工具                JRE

             javac   jar                JVM  类库

这同样也是个树 每个子文件夹只属于一个父文件夹

树型结构就是典型的一对多的关系,是一种典型的非线性关系结构->树型结构

4)网状结构

地图导航-找最快路径

这个把每个英文字母看成某个地点

计算机的操作对象:某个城市

计算机的算法:前往某个城市的行为

操作对象之间的关系:非线性关系,图

这种多对多的关系 名字称为网状结构

从A到E 或者 C到E 最近路线

这种问题无法用数学的公司或方程来描述,是一些非数值计算的程序设计问题

描述非数值计算问题的数学模型不是数学方程 而是如表,树,图之类具有逻辑关系的数据

数据结构是一门研究非数值计算的程序设计中计算机的操作对象以及它们之间的关系和操作的学科

5)数据(Data)

是能输入计算机能被计算机处理的各种符号的集合

(数据库中的表,java中数组都可以说是一个数据)

-1 信息的载体

-2 是对客观事务符号化的表示

-3 能够被计算机识别,存储和加工

包括:

        数值型的数据:整数,实数等(能运算的 就比如是java中整型浮点型)

        非数值型的数据:文字,图像,图形,声音等(就比如java中字符型)

6)数据元素(Data Element)

是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理

(也好比为java中的类 或者说mysql中插入的表中完整一条数据)

简称为元素 或者为记录(表),结点(树)点或顶点(网)

7)数据项(Data Item)

构成数据元素的不可分割的最小单位

(这个可以理解为类的属性或者数据库中的定义的用户名,学号什么的)

数据>数据元素>数据项

8)数据对象(Data Object)

是性质相同的数据元素的集合,是数据的一个子集

就比如整数对象是集合N={......,-2,-1,0,1,2,3,-----}

数据元素和数据

数据元素->组成数据的基本单位

        与数据的关系:是集合的个体

(类似数据库中插入表中的数据和表的关系)

数据对象->性质相同的数据元素的集合

        与数据的关系是:集合的子集

(这个就是数学基础了 就好比java中数组a=(1,2,3) 这其中数学对象可以是(1,2)数据元素就是1/2/3 这种数 数据就是数组a 理解起来比较抽象 尽量理解)

(排在Java容器后 了解部分java程序后更容易理解了)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1887135.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AcWing 1256:扩展二叉树

【题目来源】https://www.acwing.com/problem/content/1258/【题目描述】 由于先序、中序和后序序列中的任一个都不能唯一确定一棵二叉树,所以对二叉树做如下处理,将二叉树的空结点用 补齐,如图所示。 我们把这样处理后的二叉树称为原二叉树…

Linux系统之 — 线程

Linux系统之 — 线程 线程介绍线程使用死锁(Deadlock)竞态条件(Race Condition) 线程使用示例服务器端代码示例服务器端示例拆解1. 引入头文件和宏定义2. 定义全局变量3. 定义线程函数4. 主函数5. 错误处理和资源释放 客户端代码示…

谷歌重磅:告别RAG,长上下文的大语言模型无需检索增强

当今人工智能领域正在经历一场静默的革命。随着大语言模型(LLM)的快速发展,它们不仅能够处理更长的上下文,还展现出惊人的推理和检索能力。 难道我们要告别基于LLM的检索增强生成(RAG)了吗? 结果还真是这样,最近谷歌发布专门用于…

k8s公网集群安装(1.23.0)

网上搜到的公网搭建k8s都不太一致, 要么说的太复杂, 要么镜像无法下载, 所以写了一个简洁版,小白也能一次搭建成功 使用的都是centos7,k8s版本为1.23.0 使用二台机器搭建的, 三台也是一样的思路1.所有节点分别设置对应主机名 hostnamectl set-hostname master hostnamectl set…

一文搞懂 java 线程池:ThreadPoolExecutor 和 FixedThreadPool 原理

你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我! 文章目录 一…

数据结构-排序算法篇

前言 在我们的生活中有很多东西都是有大小的,那么该如何去排序?假设有10个数字要你去排序,眼睛一扫就看出来了,那100、1000、10000要怎么去排?下面就为大家介绍各种排序的算法。 内容 1.冒泡排序 2.选择排序 3.插入…

某Dota/IM对战平台玩家助手、查看战绩下、胜率等

功能说明 WAR3游戏启动后,可以自动获取游戏双方的玩家列表,然后查询显示玩家的战绩及个人信息。附带查看玩家的战绩详情、最近游戏,查看对手及友方的战绩详情,据此推算出是否开黑、是否小号等信息 使用方法及运行效果 启动 查…

武汉星起航:贴心服务引领,跨境电商成功启航

在当今全球互联互通日益加强的背景下,跨境电商已经跃升为驱动国际贸易繁荣的重要引擎。作为全球电商领域的翘楚,亚马逊坚守公平、公正、透明的商业准则,为全球卖家搭建了一个值得信赖的交易平台。在这个平台上,众多卖家通过提升产…

如何指定Microsoft Print To PDF的输出路径

在上一篇文章中,介绍了三种将文件转换为PDF的方式。默认情况下,在Microsoft Print To PDF的首选项里,是看不到输出路径的设置的。 需要一点小小的手段。 运行输入 control 打开控制面板,选择硬件和声音下的查看设备和打印机 找到…

Django 多对多关系

多对多关系作用 Django 中,多对多关系模型的作用主要是为了表示两个模型之间的多对多关系。具体来说,多对多关系允许一个模型的实例与另一个模型的多个实例相关联,反之亦然。这在很多实际应用场景中非常有用,比如: 博…

Ceyear®VSA 信号分析软件

CeyearVSA 信号分析软件 CeyearVSA 矢量信号分析软件 CeyearVSA 矢量信号分析软件将信号分析体验和测试应用于桌面,帮助排查问题并优化设计。 CeyearVSA 矢量信号分析软件结合仪表支持在线解调分析,也可支持信号导入离线分析;软件具有多种…

搜狐新闻HarmonyOS版本 push 推送开发

背景 搜狐新闻作为HarmonyOS的合作伙伴,于2023年12月成功上架鸿蒙单框架应用市场,成为首批鸿蒙应用矩阵的一员。 新闻类推送作为应用的重要组成部分,在二期规划中,我们将推送功能列为核心功能模块。本文将推送集成过程中的步骤和…

oracle体系结构详解(实例+数据文件)

提示:主要总结oracle数据库:物理结构,逻辑结构,内存结构以及oracle进程 文章目录 Oracle服务器由(实例和数据库文件组成)1、实例2、数据文件1.oracle物理体系结构2.oracle数据库逻辑结构3oracle数据库内存结…

Log4j日志框架讲解(全面,详细)

Log4j概述 Log4j是Apache下的一款开源的日志框架,通过在项目中使用 Log4J,我们可以控制日志信息输出到控制台、文件、甚至是数据库中。我们可以控制每一条日志的输出格式,通过定义日志的输出级别,可以 更灵活的控制日志的输出过程…

【前端vue3】TypeScrip-类型推论和类型别名

类型推论 TypeScript里,在有些没有明确指出类型的地方,类型推论会帮助提供类型。 例如: 变量xiaoc被推断类型为string 如重新给xiaoc赋值数字会报错 let xiaoc "xiaoc"xiaoc 1111111111111如没有给变量指定类型和赋值&#xf…

阿里Nacos下载、安装(保姆篇)

文章目录 Nacos下载版本选择Nacos安装Windows常见问题解决 更多相关内容可查看 Nacos下载 Nacos官方下载地址:https://github.com/alibaba/nacos/releases 码云拉取(如果国外较慢或者拉取超时可以试一下国内地址) //国外 git clone https:…

RabbitMQ进阶篇

文章目录 发送者的可靠性生产者重试机制实现生产者确认 MQ的可靠性数据持久化交换机持久化队列持久化消息持久化 Lazy Queue(可配置~)控制台配置Lazy模式代码配置Lazy模式更新已有队列为lazy模式 消费者的可靠性消费者确认机制失败重试机制失败处理策略 业务幂等性唯一消息ID业…

编译libvlccpp

首先下载vlc sdk https://get.videolan.org/vlc/3.0.9.2/win64/vlc-3.0.9.2-win64.7z Cmake 生成libvlccpp vs2022工程文件 编译libvlccpp 编译出错需修改代码 错误信息: \VLC\sdk\include\vlc/libvlc_media.h(368): error C2065: “libvlc_media_read_cb”: 未…

Linux高并发服务器开发(九)Tcp状态转移和IO多路复用

文章目录 0 包裹函数1 多进程服务器流程代码 2 多线程服务器3 TCP状态转移半关闭心跳包 4 端口复用5 IO多路复用技术高并发服务器 6 select代码总结 7 POLLAPI代码poll相对select的优缺点 8 epoll(重点)API监听管道代码EPOLL 高并发服务器 9 Epoll的两种…

【MySQL备份】Percona XtraBackup加密备份实战篇

目录 1.前言 2.准备工作 2.1.环境信息 2.2.配置/etc/my.cnf文件 2.3.授予root用户BACKUP_ADMIN权限 2.4.生成加密密钥 2.5.配置加密密钥文件 3.加密备份 4.优化加密过程 5.解密加密备份 6.准备加密备份 7.恢复加密备份 7.1.使用rsync进行恢复 7.2.使用xtrabackup命令恢…