java计算机二级部分知识点

news2024/10/7 10:13:43

参考来源

java计算机二级内容总结
百度图片
C/C++版数据结构之树<一>

线性结构

在这里插入图片描述
如果一个数据满足下面两个条件:1)有且只有一个根节点;2)每一个节点最多有一个前件,也最多有一个后件,则称该数据为线性结构。线性结构又叫线性表

常见的线性结构包括:串(字符串)、队列、链表和栈等

非线性结构

树形结构

在这里插入图片描述
树形结构中的数据元素之间存在一种一对多的层次关系,每一个元素最多有一个前驱,能够有多个后继

图状结构

在这里插入图片描述
该结构的数据元素之间存在着多对多的任意关系,图状结构也称为网状结构

集合结构

在这里插入图片描述
数据元素之间除了同属一个集合外,不存在其他关系。

其他结构

常见的非线性结构包括:广义表,树结构,图结构,多维数组等。

存储结构

存储结构主要分为顺序存储、链式存储、索引存储和散列(哈希)存储。一个完整的存储结构必须能够存储数据元素,以及元素之间的逻辑关系

顺序存储

顺序存储为线性结构
在这里插入图片描述
数据被存储在一组连续的存储单元中,其数据间的逻辑关系和物理关系是一致的。特点:易查难插(删)

链式存储

线性结构
在这里插入图片描述
借助元素地址指针表示数据的逻辑结构,每一个元素都会包含指向下一个元素的指针,这种结构须要在节点上附加一个指针项,指出后继节点的位置,即每一个节点存储单元包含两个部分:[数据项,指针项]。特点:易插(删)难查

索引存储

非线性结构
在这里插入图片描述
存储在数据元素信息的同时还建立附加的索引表。索引表中的所有索引项是有序排列的。特点:查找效率高,但额外增加了空间的开销。

散列存储(哈希表)

非线性结构
在这里插入图片描述

根据元素的关键字通过哈希(或散列)函数直接计算出一个值,并将这个值作为该元素的存储地址。特点:查找速度快。

数据的运算

算法

一个算法就是对特定问题求解步骤的一种描述
算法规定了求解给定类型问题所需的全部处理步骤以及执行顺序,使得问题能在有限时间内机械的求解,再具体一点,算法是一段有穷的指令序列,算法必须能使用某种语言描述

算法特性

1.有穷性:指算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且每一个步骤在可接受的时间内完成;

2.确定性:算法的每一步骤都具有确定的含义,不会出现二义性;

3.可行性:算法的每一步都必须是可行的,也就是说,每一步都能够通过执行有限次数完成;

4.输入:是指算法具有零个或多个输入;

5.输出:是指算法至少有一个或多个输出;

算法的分类

冒泡排序

简介

时间复杂度

代码

选择排序

简介

时间复杂度

代码

插入排序

简介

时间复杂度

代码

希尔排序

简介

时间复杂度

代码

归并排序

简介

时间复杂度

代码

快速排序

简介

时间复杂度

代码

堆排序

简介

时间复杂度

代码

算法的性能

算法的效率作为判断算法优劣的标准。一个算法的优劣往往通过算法复杂度来衡量,算法复杂度包括时间复杂度和空间复杂度两个方面。

时间复杂度是指执行算法所需要的计算工作量;而空间复杂度是指执行这个算法所需要的内存空间。

时间复杂度

即通常所说的算法执行所需要耗费的时间,时间越短,算法越好。

算法的时间度量,记作:T(n)=O(f(n))。它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同。
常见的时间复杂度量级有
在这里插入图片描述
一般而言,常常以算法执行时间作为算法优劣的主要衡量指标

空间复杂度

对一个算法在运行过程中临时占用存储空间大小的量度

常见的数据结构

数组

链表

概述

链表是一种顺序结构,这种存储结构具有在物理上存在非连续的特点,链表由一系列数据结点构成,每个数据结点包括数据域和指针域两部分。其中,指针域保存了数据结构中下一个元素存放的地址。链表结构中数据元素的逻辑顺序是通过链表中的指针链接次序来实现的。
链式存储方式既可用于表示线性结构,也可用于表示非线性结构。

链表分类

单链表

只能沿正向遍历项目
在这里插入图片描述

双链表

可以在前进和后退方向上遍历项目。节点由一个称为上一个的附加指针组成,指向上一个节点
在这里插入图片描述
在这里插入图片描述

循环链接列表

在这里插入图片描述

静态链表

静态链表可以不依赖指针保存数据 可以用数组下表模拟指针 保存数据的地址;

在这里插入图片描述

概述

栈是一种特殊的线性表,它只能在一个表的一个固定端进行数据结点的插入和删除操作。栈按照"后进先出"或“先进后出”的原则来存储数据,也就是说,先插入的数据将被压入栈底,最后插入的数据在栈顶,读出数据时,从栈顶开始逐个读出。栈中没有数据时,称为空栈。

栈的顺序存储及其运算

栈的基本运算有3种:入栈、退栈与读栈顶元素。

入栈运算:在栈顶位置插入一个新元素;

退栈运算:取出栈顶元素并赋值给一个指定的变量;

读栈顶元素:将栈顶元素赋值给一个指定的变量;

队列

概述

队列是一种特殊的线性表。和栈不同的是,队列只允许在表的一端进行插入操作,而在另一端进行删除操作。一般来说,进行插入操作的一端称为队尾,进行删除操作的一端称为队头。队列中没有元素时,称为空队列。
在这里插入图片描述

队列操作

进队:将元素插入队列的末尾。

出队:从队列的开头删除元素

概述

树是典型的非线性结构,在树结构中,有且仅有一个根结点,该结点没有前驱结点。在树结构中的其他结点都有且仅有一个前驱结点,而且可以有两个后继结点,m≥0。

树的相关概念

父节点:每一个节点都只有一个前件,称为父节点,没有前件的节点只有一个,称为根节点;

子节点:每一个节点可以有多个后件,称为该节点的子节点,没有后件的节点,称为叶子节点;

度:一个节点所拥有的后件个数称为该节点的度,所有节点中最大的度称为树的度;

深度:树中结点的最大层次数称为树的深度或高度;

结点的度:一个结点拥有的子树数目称为该结点的度。

树的度:一棵树中最大的结点度数。

结点的层次(Level):从根结点开始定义根为第一层,它的孩子为第二层,依此类推

有序树:树中的各子树自左向右有序的称为有序树。

祖先:是指从根结点到该结点之间所有的结点。

在这里插入图片描述
A是根结点,A结点的度是3,D结点的度是3;因为3是结点的度的最大值,所以这棵树的度是3;E、G、H、I、K、L和M是叶子结点。A在树的第一层,B、C、D在树的第二层,E、F、G、H、I、J在树的第三层,K、L、M在树的第四层;树的深度是4。树从左往右是有序的,这是一棵有序树;E结点的祖先是A、B。

二叉树的性质

在这里插入图片描述
每个结点最多只有两个子结点,可以没有或者只有一个。左子树和右子树是有顺序的,次序不能任意颠倒。

二叉树的遍历

(1)先序遍历(先根遍历)

  1. 访问根结点

  2. 先序遍历左子树

  3. 先序遍历右子树

(2)中序遍历(中根遍历)

  1. 中序遍历左子树

  2. 访问根结点

  3. 中序遍历右子树

(3)后序遍历(后根遍历)

  1. 后序遍历左子树

  2. 后序遍历右子树

  3. 访问根结点


在这里插入图片描述
对于上图遍历结果:

先序遍历:ABDECFG

中序遍历:DBEAFCG

后序遍历:DEBFGCA

树的种类

无序树

树中的各子树自左向右无序的称为无序树
在这里插入图片描述

有序树

树中任意节点的子结点之间有顺序关系,这种树称为有序树

二叉树

二叉树又叫二分树,它的特点是每个结点最多只有二棵子树,也就是二叉树中没有度大于2的结点。二叉树的子树有左右之分,严格区分左孩子、右孩子,其次序不能颠倒。
在这里插入图片描述

完全二叉树

一棵深度为k的有n个结点的二叉树,对树中的结点按从上至下、从左到右的顺序进行编号,如果编号为i(1≤i≤n)的结点与满二叉树中编号为i的结点在二叉树中的位置相同,则这棵二叉树称为完全二叉树

别人的理解:完全二叉树:对于一个树高为h的二叉树,如果其第0层至第h-1层的节点都满。如果最下面一层节点不满,则所有的节点在左边的连续排列,空位都在右边。这样的二叉树就是一棵完全二叉树。

除最后一层外,每一层上的结点数都达到最大值,在最后一层上只缺少右边的若干结点。满二叉树也是完全二叉树

在这里插入图片描述

满二叉树

一棵深度为k且有2k-1个结点的二叉树称为满二叉树。
除最后一层(叶子节点)外,每一层上的所有结点都有两个子结点。
在这里插入图片描述

平衡二叉树

特点

1.它必须是二叉查找树。
2.每个节点的左子树和右子树的高度差至多为1。
AVL树的查找、插入、删除操作在平均和最坏的情况下都是O(logn)
在这里插入图片描述

二叉查找树

若它的左子树不为空,则左子树上所有节点的值均小于它的根节点的值;若它的右子树不为空,则右子树上所有节点的值均大于它的根节点的值;它的左、右子树也分别是二叉排序树。说明它是一颗有顺序的树,左子树节点的值小于根节点的值,右子树节点的值大于根节点的值。
在这里插入图片描述

红黑树

在这里插入图片描述

特性

1.根节点必须是黑色。
2.任意从根到叶子的路径不包含连续的红色节点。
3.任意从根到叶子的路径的黑色节点总数相同。

特点

根结点的值是所有结点中最小的或者最大的,并且根结点的两个子树也是一个堆结构

堆的应用

可以在O(log n)时间内使用堆来实现队列功能。

用于查找给定数组中k个最小(或最大)的值。

用于堆排序算法

概述

图是另一种非线性数据结构。在图结构中,数据结点一般称为顶点,而边是顶点的有序偶对。如果两个顶点之间存在一条边,那么就表示这两个顶点具有相邻关系。

有向图

一个图结构中,边是有方向性的,那么这种图就称为有向图

无向图

如果一个图结构中,所有的边都没有方向性,那么这种图便称为无向图

程序设计基础

在这里插入图片描述

软件工程基础

在这里插入图片描述

数据库设计基础

java语言程序设计

在这里插入图片描述

Java图形用户界面

https://blog.csdn.net/xiaoxianer321/article/details/120407071

todo

整理算法分类,和时间复杂度

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

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

相关文章

图神经网络入门:理论与实践

图神经网络&#xff08;Graph Neural Networks&#xff0c;GNNs&#xff09;是一种针对图数据进行建模和处理的深度学习模型&#xff0c;其具有在推理和预测具有高度关联和复杂结构的数据中具有优势等特点。与传统的神经网络不同&#xff0c;GNNs 能够自适应地根据图结构进行信…

I/O通道

一、设备控制器&#xff08;I/O接口&#xff09;&#xff1a; 功能&#xff1a;控制一个或多个I/O设备&#xff0c;以实现I/O设备和计算机之间的数据交换。是CPU与I/O设备之间的接口&#xff0c;接收从CPU发来的命令&#xff0c;去控制I/O设备工作&#xff0c;使CPU能够从繁杂…

【零基础学web前端】初识html,html结构,html常见标签,图片标签,超链接标签

前言: 大家好,我是良辰丫,今天我们就开始进入前端知识的学习&#x1f49e;&#x1f49e; &#x1f9d1;个人主页&#xff1a;良辰针不戳 &#x1f4d6;所属专栏&#xff1a;零基础学web前端 &#x1f34e;励志语句&#xff1a;生活也许会让我们遍体鳞伤&#xff0c;但最终这些伤…

win10自带dll修复以及多种dll修复方法分享

修复DLL文件是解决Windows系统中发生的许多问题的重要步骤之一。在Windows 10中&#xff0c;自带了一些工具和功能来修复损坏的DLL文件。本文将讨论Windows 10自带的DLL修复工具以及其他常见的DLL修复方法。 一.Windows 10自带的DLL修复工具 Windows 10自带了许多工具和功能来…

bash简单常见用法

bash新建自定义数组 myArray() for ((i 0 ; i < 5 ; i )) do myArray[$i]"AAAA{$i}DD" done echo ${myArray[]} #输出结果是AAAA{0}DD AAAA{1}DD AAAA{2}DD AAAA{3}DD AAAA{4}DD 提取文件名成功 projects"D:/Project/Program/IDEAWorkspace/myauto/automati…

x509证书中的Issuer和Subject

在x509标准中的位置 Issuer 颁发者字段标识已签署和颁发证书的实体。 颁发者字段必须包含一个非空的可分辨名称 (DN)。 颁发者字段定义为 X.501 类型名称 [X.501]。 名称由以下 ASN.1 结构定义&#xff1a; Name 描述了一个由属性组成的分层名称&#xff0c;例如国家名称&…

利用Python+selenium技术,实现浏览器基本操作详解,代码有详细注释

首先&#xff0c;需要安装selenium库和对应的浏览器驱动程序。以Chrome浏览器为例&#xff0c;可以使用以下命令安装selenium和chromedriver&#xff1a; pip install selenium然后&#xff0c;需要下载对应版本的chromedriver&#xff0c;并将其添加到环境变量中。下载地址&a…

关于DSP28335设置内存分配设置堆栈笔记

关于DSP28335设置内存分 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 关于DSP28335设置内存分前言一、设置堆栈这里主…

【头歌】二叉树的顺序存储及基本操作

第1关&#xff1a;树和二叉树基本概念 任务描述 本关任务&#xff1a;根据所学树和二叉树的基本概念等相关知识&#xff0c;完成右侧的选择题。 相关知识 树的定义 从数据结构角度看&#xff0c;树包含n&#xff08;n≥0&#xff09;个结点&#xff0c;当n0时&#xff0c;…

thinkphp6-配置设置与获取,Thinkphp6自定义配置文件以及调用(config文件夹下的配置)

环境变量 设置环境变量 /.env [DATABASE] USERNAME root PASSWORD 123456 获取环境变量 app/controller/Index.php <?php namespace app\controller;use app\BaseController; use think\facade\Env;class Index extends BaseController {public function index(){$usern…

IO模型的分类以及各个io模型之间的优劣势

本文主要讲解bio以及nio的一些问题和知识&#xff0c;会对aio进行简单讲解&#xff0c;但不会深入剖析 我们说熟知的io模型有哪些呢&#xff1f; 同步阻塞io同步非阻塞io同步多路复用异步非阻塞io java的io本身是不具有真正的io操作能力的&#xff0c;当调用io操作时&#x…

基于ArcGIS:GIS空间分析复习-理论概念+案例分析

目录 01 第一章 1.1 GIS空间分析的概念 1.2 GIS空间分析的研究对象、研究目标 1.3 研究目标是&#xff1a;认知、解释、预报、调控。 1.4 道路拓宽案例分析 1.5 GIS空间分析的核心问题 02 第二章 2.1 空间查询的概念、空间量算的概念 2.2 函数距离的概念 2.3 空间查询…

Android之 常用数据库框架整理

一 简介 1.1 上节说了关系型数据库有以下几种&#xff1a; Oracle、Microsoft SQL Server、Microsoft Access、MySQL、SQLite 1.2 各自的领域也不一样 java&#xff0c;C#&#xff0c;php等用Oracle&#xff0c;Microsoft SQL Server&#xff0c;MySQL比较多。 移动端Andr…

07 - 3系统容量规划

阿里系业务容量规划 Tair集群部署与水位调配 阿里系容量精调之单机压测场景 传统模拟请求 流量复制 流量转发 网关权重 线上测试注意点 阿里系混合部署技术 资源分时复用&#xff1a;提高资源利用率sigama框架做在线资源池调度&#xff0c;伏羲做离线资源池调度&#xff1b;…

基于fpga的图像处理之图像灰度化处理(Vivado+Modelsim+Matlab联合仿真验证)

** 基于fpga的图像处理之图像灰度化处理 ** 本文的思路框架&#xff1a; ①本文采用两种算法进行灰度处理&#xff0c;平均法和加权均值法&#xff1b;加权均值法采用了直接公式求解和查找表两种方式验证 ②FPGA设计中三个设计技巧&#xff0c;可用于工程项目借鉴&#xff…

Redis了解

Redis 源码大概做了哪些事情&#xff1f; 设置默认参数创建对象、持久化定时器回调加载文件参数 (使用配置文件替代部分默认参数)加载文件数据写入字典创建client connect事件handler&#xff08;accept后&#xff0c;写入读写事件select()&#xff0c;最新的版本用epoll&…

xlsx 导出 (简单使用)

下载数据为xlsx 安装 npm install xlsx 在src下创建文件utils文件夹&#xff0c;在utils文件夹下创建XLSX.js文件 // 下载excel功能 import * as XLSX from xlsx/*** param dataList 表格数据内容 array* param fileName 文件标题。必须以 .xlsx结尾*/ export const download…

Linux网络——Shell编程之快捷命令

Linux网络——Shell编程之快捷命令 一、快捷排序 — sort 命令二、快捷去重 — uniq 命令三、快捷替换 — tr 命令四、快速裁剪 — cut 命令五、文件拆分 — split 命令六、文件合并 —paste 命令七、变量扫描器 — eval 命令 一、快捷排序 — sort 命令 sort命令用于以行为单位…

五步看平台,选好安全的MT4交易外汇平台

在选择MT4外汇交易平台时&#xff0c;如何避免不正规的平台?以下是5招教你远离不正规MT4交易外汇平台。 1. 查看平台是否取得合法许可证 首要考虑的是该平台是否取得了合法的许可证。许可证是证明一个交易平台合法的最重要证据&#xff0c;因此务必在选择时核查该平台的许可证…

得物深入浅出解析JVM中的Safepoint

1.初识Safepoint-GC中的Safepoint 最早接触JVM中的安全点概念是在读《深入理解Java虚拟机》那本书垃圾回收器章节的内容时。相信大部分人也一样&#xff0c;都是通过这样的方式第一次对安全点有了初步认识。不妨&#xff0c;先复习一下《深入理解Java虚拟机》书中安全点那一章…