- 博客(23)
- 资源 (2)
- 收藏
- 关注
原创 图的创建、DFS和BFS
图的基本概念1.图是一种数据结构,其中结点可以具有零个或者多个相邻的元素,两个结点之间的连接称为边。结点可以称为顶点。2. 顶点:边:路径:3.无向图:有向图:带权图:4.图的两种表示方式:一个是二维数组来表示(邻接矩阵);另一种即链表表示(邻接表)。邻接矩阵:1表示两个顶点之间是连通的;0表示两个顶点之间不可以连通。(自己规定的)缺点:需要为每一个顶点分配n个边的空间,二很多边是不存在的,造成空间的浪费。邻接表:只关心存在的边,因此没有空间的浪费,邻接表是由
2022-05-08 21:31:08
520
原创 ssh错误:unable to authenticate解决办法
第三方图形化工具SQLyog远程连接Linux数据库,出现ssh错误:unable to authenticate。mysql8.0之前没有出现该问题,在mysql8.0后就会出现该问题。MySQL 8.0 之前的版本加密规则是 mysql_native_password ,在MySQL 8.0之后,加密规则是 caching_sha2_password ,因此我们登录客户端时可能会出现Plugin caching_sha2_password could not be loaded的提示,我..
2022-05-08 18:50:54
4517
原创 VMware虚拟机黑屏死机解决方法
1.问题:虚拟机开机右一个centos出现黑屏,而其他的centos是正常的。2.解决步骤:1)在Windows系统下的命令符窗口(cmd),以系统管理员的身份进入。 2)输入“netsh winsock reset”,如果出现成功重置winsock 目录,则关闭窗口,电脑关机重启。再进入VMware,打开刚刚出现黑屏的centos,黑屏问题就会被解决啦...
2022-05-07 17:17:34
2471
原创 VMtools的安装
基本概述1.可以实现命令在Windows与centos上复制粘贴2.可以实现Windows与centos上文件夹共享VMtools的安装步骤:1).进入Centos系统2).点击VM菜单的安装VMware Tools (因为我已经安装了,所以这块显示重新安装)3).Centos会出现一个vm的安装包(我把它复制粘贴放在了/opt目录下)4).点击右键进行解压,得到一个安装文件夹5).点击进入解压后的vm文件夹,直接点击vmware-install.pl文件进入安装。
2022-05-07 12:08:09
3454
原创 平衡二叉树(AVL树)
平衡二叉树的引入给一个数列{1,2,3,4,5,6},要求创建一颗二叉排序树(BST),并分析问题所在。问题分析:该二叉排序树的左子树全部为空,从形式上看更像一个单链表。插入与删除的速度不受影响,但是,查询的速度明显较低(因为要依次进行比较,每次还需要比较左子树),查询速度明显低于单链表。解决方法:使用平衡二叉树(AVL树)平衡二叉树的基本概念1.平衡二叉树也称平衡二叉搜索树或者AVL树,可以保证查询效率较高。2.平衡二叉树的前提是一个二叉排序树。3.平衡二叉树的特点:它是一
2022-05-06 21:05:16
798
原创 多叉树与多路查找树(B-树、B+树、B*树)
目录多叉树的引入多叉树的概念B树的概念B+树的概念B*树的概念多叉树的引入问题引入:二叉树的问题分析:二叉树的操作效率高,但是也存在问题:二叉树需要加载到内存中,如果二叉树的节点少,那没有多大的影响,但是如果二叉树的节点很多(比如上万上亿个节点),那么就会存在以下的问题: 问题1:在构建二叉树时,需要多次进行I/O操作(海量数据存储在数据路和文件中),节点海量,构建二叉树时,速度会大大的受影响。 问题2:节点海量,就会造成二叉树的高度很高,...
2022-05-06 19:13:14
534
原创 二叉排序树
目录二叉排序树的引入二叉排序树基本概念二叉排序树的创建二叉排序树的插入操作二叉排序树的遍历操作二叉排序树的查找操作二叉排序树的删除操作 1. 要删除的节点是叶子节点 2. 要删除的节点只有一个子节点 3. 要删除的节点有两个子节点二叉排序树的代码实现二叉排序树的引入问题引入:给一个数列{7,3,10,12,5,1,9},要求能够高效的完成对数据的查询与添加问题解决: 方案一:使用数组存储 数组未排...
2022-05-04 19:49:14
520
原创 排序算法——堆排序
8.堆排序(1)介绍① 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最好、最坏、平均时间复杂度均为O(nlogn),不是稳定排序;② 堆排序是利用了顺序存储二叉树的思想;③ 堆是具有以下性质的完全二叉树:每个结点的值都大于或者等于它的左子结点和右子结点,称之为大顶堆;每个结点的值都小于或者等于它的左子结点和右子结点,称之为小顶堆;④ 升序使用大顶堆,降序使用小顶堆。(2)基本思想① 首先要根据题上的要求,将待排的无序序列调整成为大顶堆或者小顶堆,以下
2022-05-03 18:04:55
499
原创 排序算法——基数排序
7.基数排序(1)介绍 ① 基数排序,属于“分配式排序”,又称“桶子法”或者 bin sort,则他是通过键值各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用。 ② 基数排序法是属于稳定性的排序,基数排序是效率高的稳定性排序。③ 基数排序法是桶排序的扩展。④ 基数排序法是典型的以空间换时间的排序算法。(2)基本思想:将所有的待排数据统一为相同的位数长度【以最长位数为标准】,位数较短的数据在前面添0.然后从最低位开始,依次进行一次...
2022-04-20 07:42:41
203
原创 排序算法——归并排序
6.归并排序(1)基本思想:利用归并的思想实现排序方法。该算法采用分治策略。(分治法将问题分成一些小问题,然后递归求解,而治的阶段就是降分的阶段得到的各答案“修补”在一起,即分而治之)。(2)归并排序思想示意图:图解说明:a.第一步——>分:mid=left+right,将整个待排序列分为左子树 [left,mid] 和右子树[mid+1,right]两个待排序列,再继续将[left,mid]和 [mid+1,right]递归分成更多的子序列,递归终止条件为:left &.
2022-04-20 07:42:28
192
原创 排序算法——快速排序
5.快速排序快速排序是对于冒泡排序的升级改进。 (1)基本思想: 在每一轮中任意找一个基准元素(一般为该序列的中间元素或者是第一个元素),利用该元素将待排序列分为两个部分,前面部分中的所有元素都比辅助元素小,后面部分中的所有元素都比辅助元素大,再利用快速排序的算法,分别对这两部分进行排序,不断递归,最后得到一个有序的序列。 (2)快速排序示意图:图解说明:a.选取 arr[left + right) /2] 元素为基准值b.分别在从序列...
2022-04-09 17:30:50
623
原创 排序算法——希尔排序
4.希尔排序(1)基本思想:希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法进行排序:随着增量不断减少,每组包含的元素个数不断增加,当增量为1时,整个文件恰被分为一组,算法便终止了。(2)希尔排序示意图:图解说明:a.总共要进行 【gap = arr.length / 2 到 gap =1 ,且每次增量减少为原来一半,即gap = gap /2】 轮b.每一轮中就是对于每组的元素的直接插入排序c.注意每一轮中的直接插入排序并不是把某一组全部排完再排其他组,
2022-04-09 11:03:44
215
原创 常见的排序算法——插入排序
3.插入排序(1)基本思想:插入排序是将n个待排元素的序列看成两个表,分别为有序表和无序表。起初,有序表中只有一个元素,即下标为0的元素;无序表中含有 n-1个元素,即下标从1到n-1的元素。排序过程就是每次将无序表中的第一个元素拿出,然后依次与有序表中的元素进行比较,找到合适的位置,将其插入,直到无序表中没有元素。(2)插入排序示意图:图解过程:a.共进行 arr.length-1 轮的排序(因为是从下标为1的元素开始作为无序表的)b.从无序表中拿第一个元素c.在有序表中找
2022-04-09 10:05:29
1006
原创 常见的排序算法——选择排序
2.选择排序(1)基本思想: 第一次从arr[0] ~ arr[n]中选取最小值,与 arr[0]进行交换;第二次从 arr[1] ~ arr[n]中选取最小值与arr[1]交换;第三次从arr[2] ~ arr[n]中选取最小值与 arr[2]交换;····;第 i 次从 [i-1] ~ arr[n]中选取最小值与 arr[i-1] 交换;····;总共通过 n-1 次,得到一个升序的序列。(2)选择排序的示意图图解过程: a.一共进行 arr....
2022-04-09 09:32:12
313
原创 常见的排序算法
内部排序:将需要处理的所有数据都加载到内部存储器中进行排序。常见的排序算法:插入排序:直接插入排序、希尔排序选择排序:简单选择排序、堆排序交换排序:冒泡排序、快速排序归并排序基数排序各个排序基本思想以及实现代码:(这里所有的排序是按照从小到大升序进行排序的,如果有其他的需求,请自行改动相应代码)1.冒泡排序(1)基本思想:通过对待排序列从前往后(从下标较小的元素开始),依次来比较相邻两个待排元素值的大小,若发现逆序,则交换,使得值较大的元素逐渐从前往后移动。(2)
2022-04-09 08:46:17
124
原创 Java异常处理
异常处理概述 在java语言中,将程序执行中所发生的不正常情况称为“异常”。java中程序在执行过程中所发生的异常事件分为两类: ① Error:Java虚拟机无法解决的问题。一般不编写针对性的代码。 ② Exception:其他因编程错误或者偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。异常处理分类java.lang.Throwable |---java.lang.Error:一般不编写针对的代码进行处理 |---...
2021-11-28 23:45:48
272
原创 Java数组
我们所定义的局部变量都存在于栈中,而堆中存放的都是数组和对象(数组本身也是对象)。凡是new建立的都是在堆中的,堆中存放的都为对象实体。实体可以看到多个属性,如果一个数据消失,这个实体并未消失,则还可以使用,则堆是不会释放的。但是栈却不一样,栈中存放的都是单个变量,变量释放了,那就没有了。例: ①s = new int [5]; ②int [][] a = new int [3][4];...
2021-09-23 22:02:37
65
N3 2021年7月真题+答案+详解+听力原文_Password_Removed.pdf
2023-11-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人