自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(279)
  • 收藏
  • 关注

原创 KMP算法中的next[i]和nextval[i]的规律回顾

一 概述KMP算法是为了优化朴素匹配模式中的主串指针回溯问题,此过程中回产生一个next[i]数组,而KMP优化算法是优化模式串指针的回溯问题,此过程中回产生一个nextval[i]数组。二 KMP算法之数组之next[i]当模式串中的第j个字符匹配失败,由前1~j-1个字符组成的串记为S,则:next[j] = S的最长相等前后缀长度+1。如模式串'aababaaaba'。串的下标从1开始。此时字符串中第一个字母a对应next[1] = 0 ;第二个字母a对应next[2] = 0+1

2020-11-26 20:10:01 7

原创 回顾串的朴素模式匹配

一 概述关于串的朴素模式匹配中我们应该先了解主串,子串,模式串之间的关系:主串:任何一个字符串都可以作为主串如:S = 'HelloWorld'。子串:一般理解为某个主串的子串,如主串S的字串可以有:'Hello','World'。由此可以发现子串一定是某主串中存在的连续字符串才叫做子串。模式串:模式串只要满足串的概念即可,同时模式串匹配是希望在某一指定的主串中找到该串,但不要求一定存在。二 串的模式匹配串的模式匹配是指在主串中找到与模式串相同的子串,并返回其所在位置。在串的模式

2020-11-26 12:34:04 8

原创 Git config --global user.email or user.name

一 概述本人有一段时间为为自己的项目进行代码更新,今天有所更新,在进行更新后的代码从本地库提交到远程库时,出现提示信息:*** Please tell me who you are. Run git config --global user.email "you@example.com" git config --global user.name "Your Name" to set your account's default identity. Omit --global ..

2020-11-25 20:07:33 11

原创 从语言实现十六进制数转换输出十进制数

一 概述当存在无符号十六进制数(出现的字母为小写),通过代码使其转换成十进制数。二 代码实现知识准备:简单十六进制数0~15为:0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f 。 0~15对应的ASCII表值为:48,49,50,51,52,53,54,55,56,97,98,99,100,101,102 。 'a'到'f'的ASCII码是97到102 。 s[i] >= 97:在ASCII码表中为a及以后的字符 。 s[i] - 87:表示为,如果十六进制数中

2020-11-25 19:48:53 9

原创 回顾二进制,八进制,十进制,十六进制数据的不同表示

一概述我们一般使用的是十进制数,但是计算机只能识别二进制数,且只能操作二进制数,但是数据的进制还存在八进制和十六进制,而且不同进制的数据都存在着不同的表示。其中八进制的数据以0开头,十六进制的数据以0x开头。二 数据0~16的不同进制对照表十进制 二进制 八进制 十六进制 0 0 0 0 1 1 1 1 2 10 2 2 3 11 3 3 4 100 4 4

2020-11-25 17:08:10 8

原创 Windows上CLion的配置

一 概述下载CLion二 免费使用策略1. 通过免费试用30天福利,30天福利时间过后,通过清除个人电脑缓存,继续享受福利2.通过学生证、教师证或者edu邮箱获取,在校学生的福利;3. 也可以通过自己的开源项目来进行申请,这个对于初学者要求比较高;4. 最后的也是最不建议的方法就是破解,个人电脑无所谓,企业电脑注意破解版本存在法律风险。 注意:本人使用的Clion版本信息,因为其他版本个人电脑破解失败!只有该版本成功破解。破解教程》破解文件[解压密码jhyi]...

2020-11-24 19:35:51 18 2

原创 串的基本操作回顾

一 概述假设存在串T = "",S = "HelloWorld?",W = "we"。StrAssign(&T,chars):赋值操作。把串T赋值为chars。StrCopy(&T,S):复制操作。由串S复制得到串T。StrEmpty(S):判空操作。若S为空串,则返回TRUE,否则返回FALSE。StrLength(&S):求串长。返回串S的元素个数。DestroyString(&S):销毁串。将串S销毁(回收存储空间)。ClearString(

2020-11-24 19:30:45 11

原创 串知识的重新回顾

一 串的定义串是字符串是由零个或多个字符组成的有限序列。如S = 'abc...'。其中,S是串名,单引号括起来的字符序列是串的值;a,b,c,..可以是字母,数字或其他字符;串中字符的个数n称为串的长度。串的数据对象限定为字符集(如中文字符,英文字符,数字字符,标点字符等)。当n = 0时串称为空串(用Φ进行表示)。串中元素的位序是从1开始并非从0开始,这同线性表的表示有所不同。对于串的基本操作,如增删改查等通常是以子串为操作对象。二 子串某一串中任意个连续的字符组成的

2020-11-24 11:42:43 40

原创 vscode的初步使用

一 概述vscode下载;vscode功能比较强大,可以通过不同插件实现不同语言的开发,我基本上是用它进行前端和go语言的学习于编码。此外,我还用它来阅读过Redis的部分源码!二 界面视图概况后续继续学习补充!...

2020-11-22 12:28:51

原创 线性代数的一些重要概念

1. 矩阵A同矩阵B合同⇔矩阵A同矩阵B的正负惯性指数相同。2. 正,负惯性指数分别是指矩阵A和矩阵B中的正负特征值的个数。

2020-11-22 12:14:48

原创 多项式的求根方法

一 概述函数f(x)=(an)xⁿ +....+ (a4)x⁴ + (a3)x³ + (a2)x² + (a1)x¹ + a0是一个多项式函数,一般情况下直接求根f(x)=0的根不是很方便。所以存在一个试根的技巧。二 多项式函数求根的试根法1. 如果a0 = 0,则f(0) = 0,所以此时0是f(x) = 0的一个根。2. 如果a(n) + a(n-1) + ...+ a2 + a1 + a0 = 0,则f(1) = 0,所以此时1是f(x) = 0的根。3. 如果f(x)的偶次项(.

2020-11-15 17:09:09 62

原创 一元二次方程的简单回顾

一 概述只含有一个未知数(一元),并且未知数项的最高次数为2的整式方程叫做一元二次方程。二 一元二次方程的根1. 判别公式当判别式大于零时,方程有两个不相等的实数根; 当判别式等于零时,方程有两个相等的实数根; 当判别式小于零时,方程无实数根,但又2个共轭复根。2. 韦达定理三 一元二次方程的图像四 一元二次方程的总结我们可以借助上述结论编写一个针对一元二次方程的算法,来替代认工计算。事实上计算机的起初就是用来进行某些复杂的数据运算,后来随着计算机技术的发展

2020-11-04 11:19:43 22

原创 双曲线知识的简单回顾

一 概述定义:双曲线为与两个固定点(焦点)的距离差为常数的点的轨迹。二 双曲线的标准方程1、焦点在x轴上时为:2、焦点在y轴上时为: 其中:||PF1|-|PF2||=2a,b²=c²-a²,|F1F2|=2c。三 双曲线的渐进线方程1. 焦点在x轴上时为:2. 焦点在y轴上时为:...

2020-11-04 10:57:32 14

原创 函数相关的值与性质

一 三角函数特殊角的函数值二 连续,可导,存在原函数,函数有界之间的关系可导数必然连续。 对于积分函数而言,函数连续表明函数一定存在原函数。 连续表明,某点的函数值与该点函数值相等。 闭区间上的连续函数必然有界,但是有界并不能确定函数连续。 函数的极限具有唯一性,当函数在某一点取得的极限值为±∞时,表明函数在该点极限不存在,即函数在该点发散。...

2020-11-01 11:43:19 13

原创 Netty的核心组件初识

一 概述Netty中主要构件块为:Channel 回调 Future 事件和ChannelHandler它们代表了不同类型的构造:资源,编辑以及通知。应用程序需要使用这些构件来访问网络以及流经网络的数据。二 ChannelChannel是Java NIO的一个基本构造,它代表一个到实例(如一个硬件设备,一个文件,一个网络套接字或者一个能够执行一个或者多个不同的I/O操作的程序组件)的开放连接,如读操作和写操作。我们也可以将Channel看作是传入(入站)或者传出(出站)数据的载体

2020-10-29 16:42:41 10 1

原创 守护线程

一 概述有时候,我们需要创建一个线程执行一些辅助工作,但又不希望这个线程阻碍JVM的关闭。此时我们就需要使用守护线程(Daemon Thread)。二 普通线程&守护线程线程分为两种:普通线程和守护线程。在JVM启动时创建的所有线程中,除了主线程以外,其他的线程都是守护线程(例如垃圾回收器以及其他执行辅助工作的线程)。当创建一个新线程时,新线程将继承创建它的线程的守护状态,因此在默认情况下,主线程创建的所有线程都是普通线程。普通线程与守护线程之间的差异仅在于当线程退出时发生的操作。当

2020-10-25 22:46:56 18

原创 线程封闭&栈封闭

一 概述当访问共享数据的可变数据时,通常需要使用同步。一种避免使用同步的方式就是不共享数据。如果仅在单线程内访问数据,就不需要同步。这种技术被称为线程封闭(Thread Confinement),它是实现线程安全的最简单的方式之一。当某个对象封闭在一个线程之中时,这种用法将自动实现线程安全性,即使被封闭的对象本身不是线程安全的。在Swing中大量的使用线程封闭技术。Swing的可视化组件和数据模型对象都不是线程安全的,Swing通常将它们封闭到Swing的事件分发线程中来实现线程安全性。要想正确地使

2020-10-25 19:27:01 27

原创 重新认识的volatile关键字

1. 加锁与可见性内置锁可以用于确保某个线程以一种可预测的方式来查看另一线程的执行结果。当线程A执行某个同步代码块时,线程B随后进入由同一个所保护的同步代码块,在这种情况下可以保证,在释放锁之前,A看到的变量值在B获得锁后同样可以由B看到。即当线程B执行由锁保护的同步代码块时,可以线程A之前在同一个同步代码块中的所有操作结果。这也符合Happen-before原则,即A Happen-before B。基于此我们在访问某个共享且可变的的变量时要求所有线程在同一锁上同步,就是为了确保写入该变量

2020-10-24 10:25:59 26

原创 计算机中的文件及不同的结构

一 概述文件是由大量性质相同的记录组成的集合,按记录类型不同可分为操作系统文件和数据库文件。文件的基本组织方式由顺序组织,索引组织,散列组织和链组织。文件的存储存储结构可以采用基本组织相结合的方法,常用的结构有顺序结构,索引结构,散列结构。二 顺序结构顺序结构,相应文件为顺序文件,其记录按存入文件的先后次序顺序存放。顺序文件本质上是顺序表。若逻辑上相邻的两个记录在存储位置上相邻,则为连续文件;若记录之间以指针相链接,则称为串联文件。顺序文件只能顺序存取,要更新某个记录,必须复制整个文件。

2020-10-23 17:27:27 18

原创 算法与数据结构之文件

重要概念1. 文件可按其记录的类型不同而分成两类,即操作系统文件和数据库文件。2. 从用户的观点,文件的逻辑结构通常可以区分为两类:一类是如DB中数据库文件那样的文件组织结构,称为数据库文件;另一种是诸如用各种文字处理软件编辑成的文本文件,称作为文本文件。从文件在存储器上的存放方式来看,文件的物理结构往往可区分为三类,即顺序组织,随机组织和链组织。B+树适用于组织随机组织的索引结构,m阶B+树每个结点至多有m个儿子,除根结点外每个结点至少有⌈m/2⌉个儿子,根结点至少有2个儿子,有k个儿子的结点必有

2020-10-23 17:03:31 75 1

原创 算法与数据结构之排序

重要概念1. 若考虑基数排序,则在排序过程中,主要进行的两种基本操作是关键字的比较和记录的移动·。2. 直接插入排序用监视哨的作用是免去每一次查找过程中每一步都要检测整个查找表是否查找完毕,提高了查找效率。3. 对n个元素的序列进行起泡排序时,最少的比较次数是n-1。4. 对n个记录的表r[1...n]进行简单选择排序,所需进行的关键字之间的比较次数为n(n-1)/2。5. 简单选择排序算法的最好和最坏情况时间复杂度分别为O(n^2)和O(n^2)。6. 直接选择排序算法在最好情况下

2020-10-23 15:52:31 25

原创 CSMA协议

一 类型和思想类型 基本思想 1-坚持CSMA 发送数据时,先侦听信道,如果信道空闲就立即发送,如果信道忙就等待,同时继续侦听直至信道空闲;如果发生冲突,则随机等待一段时间后,重新侦听信道。 非坚持CSMA 发送数据时,先侦听信道,如果信道空闲就立即发送;如果信道忙就放弃侦听,等待一个随机的时间后,然后再重复上述过程。 P-坚持CSMA 发送数据时,先侦听信道,如果信道忙,则等到下一时隙再侦听;如果信道空闲,便以概率p发送数据,以概率1-p推迟到下一个时隙,然后再重复

2020-10-23 14:00:09 17

原创 算法与数据结构之集合

重点知识1. 在各种查找方法中,平均查找长度与结点个数n无关的查找方法是哈希查找。2. 动态查找表和静态查找表的重要区别在于前者包含有插入和删除运算,而后者不包含这两种运算。3. 在等概率的情况下,对具有n个元素的顺序表进行顺序查找,查找成功(即表中有关键字等于定值K的记录)的平均查找长度为(n+1)/2;查找不成功(即表中无关键字等于给定值K的记录)的平均查找长度为(n+1)。4. 顺序查找n个元素的顺序表,若查找成功,则比较关键字的次数最多为n次,当使用监视哨时,若查找失败,则比较关键字

2020-10-22 23:53:31 132

原创 计算机专业学习的基础课程完整轨迹图

一 计算机专业课程优先关系的有向图二 专业课关系表课程名称 先修课程 程序设计基础 计算机导论 离散数学 程序设计基础 数据结构 离散数学,程序设计基础 汇编语言 离散数学 高级语言程序设计 数据结构,汇编语言 计算机组成原理 普通物理 编译原理 数据结构,高级语言程序设计 操作系统 数据结构,计算机组成原理 高等数学 高中基础数学 线性代数 高等数学 普通物理 高等数学 .

2020-10-22 17:58:47 16

原创 算法与数据结构之图

重要概念1. 在数据机构中,线性结构,树形结构和图形结构数据元素之间分别存在???的联系。2. n个顶点的连通图至少有?条边。3. 有向图G的强连通图分量是指?。4. 在n个顶点的有向图中,若要使得任意两个顶点可达,则至少需要?条弧。、5. 在n个顶点的无向连通图的连通分量个数为?个。6. 在n个顶点的非空无向图中,最多有?个连通分量。7. n个顶点的连通无向图,其边的条数至少为?。8. 如果具有n个顶点的图是一个环,则它有?棵生成树。9. N个顶点的连通图的生成树含有?

2020-10-21 23:33:04 29

原创 我理解的Mybatis

一 概述Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身。节省了处理加载驱动,创建连接,创建statement等繁杂问题的时间。

2020-10-19 23:40:16 29

原创 算法与数据结构之树与二叉树

重要概念1. 树在计算机内的表示方式有?2. 在二叉树中,指针p所指结点为叶子结点的条件是?3.

2020-10-19 19:16:38 15

原创 计算机课程中常用的高中数学公式

一 数列等差数列 等比数列等比中项:二 排列组合排列组合二项式定理个人学习中经常使用的数学公式,暂时如此,继续学习,继续总结!

2020-10-19 12:12:37 23 2

原创 算法与数据结构之数组和广义表

重要概念1. 数组采用的是顺序存储方式。2. 稀疏矩阵是指非零元素很少(非零元素远少于矩阵总容量),同时它们的分布没有规律。3. 对矩阵压缩是为了节省数据存储所需的物理存储空间。4. 上三角矩阵压缩的下标对应关系在上三角矩阵中,主对角线上第r(1≤r≤n)行由n-r+1个元素,a[i][j]所在的行的元素数是j-i+1。所以,按行序存储的元素在一维数组的下标k和二维数组下标的关系:K=(i-1)(2n-i)/2+j。(i≤j)5. 广义表的表尾是指除第一个元素之外其余元素组成的表,如广义

2020-10-19 11:32:41 16

原创 算法与数据结构之串篇

重要概念1. 两个字符串相等的充要条件为串的长度相等且两串对应的字符相等。2. 空格串是指由空格字符(ASCII值32)所组成的字符串,其长度为空格的个数。3. 组成串的元素只能是字符。4. 设正文长度为n,模式串长度为m,则串匹配的KMP算法的时间复杂度为O(m+n)。5. 模式串P="abaabcac"的next的函数值序列为?有待学习不是很理解6. 字符串"ababaaab"的nextval的函数值为?有待学习不是很理解7. 一个串中的任意个连续的字符组成的子序列称为子串。

2020-10-19 10:43:05 48 3

原创 算法与数据结构之栈和队列篇

重要概念1. 在栈的ADT定义中,除初始化操作外,其他基本操作的初始条件都要求栈已存在。2. 栈是操作受限(或限定仅在表尾部进行插入和删除操作)的线性表,其运算遵循的是先进后出原则。3. 堆栈是一种操作受限的线性表,它只能在线性表的一端进行插入和删除操作,对栈的访问是按照先进后出的原则进行的。4. 向栈中压入元素的操作是先进栈,后退栈。5. 当两个栈共享一存储区时,栈利用一维数组stack(1,n)表示,两栈顶指针为top[1]与top[2],则当栈1空时,top[1]为0,top[2]

2020-10-18 22:34:17 13

原创 算法与数据结构线性表篇

重要概念1. 删除长度为n的顺序表的第i个数据元素之前需要移动元素中的n-i个元素。2. 对长度为n的线性表采用顺序查找,在等概率的条件下,查找成功的平均检索长度为(n+1)/2。在长度为n的顺序表中删除第i(1≤i≤n)个数据元素时需要移动n-i个元素,在长度为n的顺序表中的第i(1≤i≤n)个元素之前插入一个新元素,需要移动n-i+1个数据元素。3. 当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度取线性表中的元素时,应采用链式存储结构。4. 线性表L={a1,a

2020-10-18 21:42:08 15

原创 算法与数据结构概论篇

重要概念1. 将两升序链表合并时,最坏情况时需要比较的次数为长链表的长度。2. 数据结构研究的内容是涉及数据组织,数据运算的实现。3. 计算机算法是指解决问题的步骤序列,它必须具备可执行性,确定性和又穷性。4. 算法原地工作的含义是指所需的辅助空间为常量。5. 同一个算法,实现语言的级别越高,执行效率越低。6. 计算算法的时间复杂度是属于一种事前分析估算的方法。7. 在数据结构中,数据的逻辑结构分为线性结构和非线性结构。8. 链式存储的特点是利用指针来表示数据元素之间的逻辑关

2020-10-18 20:25:06 10

原创 矩阵的运算

一 矩阵的加法二 数与矩阵相乘三 矩阵与矩阵之间的相乘单位矩阵:在矩阵的乘法中,有一种矩阵起着特殊的作用,如同数的乘法中的1,这种矩阵被称为单位矩阵。它是个方阵,从左上角到右下角的对角线(称为主对角线)上的元素均为1。除此以外全都为0。四 矩阵的转置 ...

2020-10-17 19:33:30 27

原创 行列式基本性质汇总

一 概述行列式是线性代数中的基础,存在很多行列式的性质可以简化我们对行列式的计算。二 行列式的基本性质1. 行列式和它的转置行列式相等2. 对换行列式的两行(列),行列式变号推论:如果行列式有两行(列)完全相同,则此行列式等于零。行列式的某一行(列)中所有的元素都乘同一数k,等于用数k乘此行列式。推论:行列式中某一行(列)中所有元素的公因子可以提到行列式记号的外面。3. 行列式中如果有两行(列)元素成比例,则此行列式等于零。4. 若行列式的某一行(列)的元素都是两

2020-10-17 17:45:43 42

原创 图遍历之深度优先搜索

一 概述深度优先搜索(Depth-First-Search,DFS)类似于树的先序遍历。它遵循的搜索策略是尽可能"深"地搜索一个图。二 深度优先搜索的基本思想首先访问图中某一起始顶点v,然后由顶点v出发,访问与v邻接且未被访问的任意顶点w1,在访问与w1邻接且未被访问的任一顶点w2,继续重复上述过程。当不能再继续向下访问时,依次退回到最近被访问的顶点,若它还有邻接顶点未被访问过,则从该点开始继续上述搜索过程,直至图中所有顶点均被访问过为止。上述过程中涉及到了递归,即DFS算法是一个递归算法,

2020-10-17 16:36:11 10

原创 图遍历之广度优先搜索

一 概述图的遍历是指从图中的某一顶点出发,按照某种搜索方法沿着图中的边对图中的所有顶点访问一次且访问一次。注意到树是一种特殊的图,所以树的遍历实际上也可以视为一种特殊的图的遍历。图的遍历时求解图的连通性问题,拓扑排序和求关键字路径等算法的基础。图的遍历比数的遍历要复杂的多,因为图的任一顶点都可能和其余顶点相邻接,所以在访问某个顶点后,可能沿着某条路径搜索又回到该顶点上。为避免同一顶点被访问多次,在遍历图的过程中,必须记下每个已经访问的顶点,为此可以设一个辅助数组Visied[]来标记顶点是否被访问过

2020-10-17 16:05:57 10

原创 图存储之邻接多重表

一 概述邻接多重表是无向图的另一种链式存储结构。在邻接表中,容易求得顶点和边的各种信息,但在邻接表中求两个顶点之间是否存在边而对边执行删除等操作时,需要分别在两个顶点的边表中遍历,效率较低。二 邻接多重表邻接多重表同十字链表类似,在邻接多重表中,每条边用一个结点表示,结构如下:其中,mark为标志域,可用以标记该条边是否被搜索过;ivex和jvex为该边依附的两个顶点在图中的位置;ilink指向下一条依附于顶点ivex的边;jlink指向下一条依附于顶点jvex的边,info为指向和边相

2020-10-17 15:28:20 25 2

原创 图存储之十字链表

一 概述十字链表是有向图的一种链式存储结构,在十字链表中,对应于有向图中的每条弧有一个结点,对应于每个顶点也有一个结点。二 十字链表十字链表的结构分为弧结点和顶点结点,其中弧结点中有5个域:尾域和头域分别指示弧尾和弧头这两个顶点在图中的位置;链域hlink指向弧头相同的下一条弧;链域tlink指向弧尾相同的下一个条弧;info域指向该弧的相关信息。...

2020-10-17 15:10:51 17

原创 图存储之邻接表法

一 概述当一个图为稀疏图时,使用邻接矩阵法显然要让费大量的存储空间,而图的邻接表法结合了顺序存储和链式存储方法,大大减少了这种不必要的浪费。二 邻接表邻接表,是指对图G中的每个顶点vi建立一个单链表,第i个单链表中的结点表示依附于顶点vi的边(对于有向图则是以顶点vi位尾的弧),这个单链表就称为顶点vi的边表(对于有向图则称为出边表)。边表的头指针和顶点数据信息采用顺序存储(称为顶点表),所以在邻接表中存在两种结点:顶点表结点和边表结点。 ...

2020-10-17 10:56:47 51

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除