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

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

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

一.概念

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

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

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

考研 必考专业课 一共四门专业课 共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程序后更容易理解了)

相关文章:

  • STM32_实现双线程控制LED交替闪烁(UCOS)
  • 【C语言】常见的字符串函数
  • 雷池WAF+Modsecurity安装防护及系统加固
  • 【Qwen2部署实战】Qwen2初体验:用Transformers打造智能聊天机器人
  • 【面试题】IPS(入侵防御系统)和IDS(入侵检测系统)的区别
  • 人脸特征68点识别 C++
  • 哪吒汽车,正在等待“太乙真人”的拯救
  • 监听 web 容器内的网络请求
  • vCenter VXR01405C ALARM Certificate is about to expire
  • 【python】scikit-learn安装失败No matching distribution found for scikit-learn
  • 【数据库原理】总结(期末版)
  • 机器学习 C++ 的opencv实现SVM图像二分类的训练 (二)【附源码】
  • 我在高职教STM32——GPIO入门之按键输入(1)
  • .net core 的缓存方案
  • 特别有用!配置Overall_Elapsed后,大大提升您使用fiddler的工作效率!
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • Docker 笔记(2):Dockerfile
  • miaov-React 最佳入门
  • mysql外键的使用
  • Promise初体验
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • WebSocket使用
  • 编写高质量JavaScript代码之并发
  • 再次简单明了总结flex布局,一看就懂...
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • 国内开源镜像站点
  • 容器镜像
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • # Apache SeaTunnel 究竟是什么?
  • #1014 : Trie树
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (04)odoo视图操作
  • (2)STL算法之元素计数
  • (C#)一个最简单的链表类
  • (zhuan) 一些RL的文献(及笔记)
  • (附源码)ssm码农论坛 毕业设计 231126
  • (几何:六边形面积)编写程序,提示用户输入六边形的边长,然后显示它的面积。
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (三十五)大数据实战——Superset可视化平台搭建
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (一)RocketMQ初步认识
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .NET Core 和 .NET Framework 中的 MEF2
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .pings勒索病毒的威胁:如何应对.pings勒索病毒的突袭?
  • :not(:first-child)和:not(:last-child)的用法
  • [2023-年度总结]凡是过往,皆为序章
  • [ai笔记9] openAI Sora技术文档引用文献汇总
  • [AutoSar]BSW_Memory_Stack_004 创建一个简单NV block并调试
  • [bzoj4240] 有趣的家庭菜园
  • [C++]priority_queue的介绍及模拟实现