自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构与算法-21算法专项(中文分词)(END)

定义:IK分词器是一款基于Java开发的开源中文分词工具,它是Lucene的一个扩展,专门用于中文文本的分词处理。功能:IK分词器结合了词典分词和基于统计的分词方法,旨在为用户提供高效、准确、灵活的中文分词服务。

2024-10-23 16:16:15 1173 1

原创 数据结构与算法-20快速查找-布隆过滤器

垃圾邮件过滤系统在一个大型的电子邮件服务提供商中,每天需要处理数以亿计的邮件。为了维护用户的安全和减少垃圾邮件的干扰,系统需要高效地识别并过滤掉来自黑名单中的垃圾邮件发送者的邮件。假设该服务提供商维护了一个包含10亿个黑名单email地址的数据库。:如果每次接收邮件时都直接查询这个庞大的数据库,将会消耗大量的计算资源和时间,严重影响邮件的接收和过滤速度。在线内容平台的用户评论审核一个大型在线内容平台,如社交媒体或新闻网站,每天都会接收到海量的用户评论。

2024-10-08 16:34:02 1072

原创 mysql优化分析-使用profile and trace

今天我们分享了 show profile 和 trace 的使用方法,我们来对比一下三种分析 SQL 方法的特点:explain:获取 MySQL 中 SQL 语句的执行计划,比如语句是否使用了关联查询、是否使用了索引、扫描行数等;profile:可以清楚了解到SQL到底慢在哪个环节;trace:查看优化器如何选择执行计划,获取每个可能的索引选择的代价。三种方法各有其适用场景,如果你有其它分析 SQL 的工具,欢迎在留言区分享。

2024-09-30 16:47:45 1254

原创 数据结构与算法-19快速查找-bitMap

逻辑否定,也称为逻辑否运算,表示对单一逻辑变量进行取反操作。如果逻辑变量为0,则取反后为1。逻辑加法,也称为逻辑或运算,表示两个逻辑变量中只要有一个为1,则结果为1;逻辑异或运算是一种特殊的逻辑运算,它表示当两个逻辑变量不相同时,结果为1;逻辑乘法,也称为逻辑与运算,表示只有当两个逻辑变量都为1时,结果才为1;这种运算通常用符号“×”、“∧”、“·”或“&”来表示。逻辑乘法类似于电路中的串联关系,只有当所有输入都为1时,输出才为1。逻辑加法类似于电路中的并联关系,只要有一个输入为1,输出就为1。

2024-09-30 16:45:12 983

原创 数据结构与算法-18算法专向(hash)

定义:散列表是一种通过键来直接访问内存存储位置的数据结构,它利用散列函数将键映射到表中一个位置,以实现快速查找。核心组件散列函数:一个用于计算散列值的函数,通常表示为hash(key),其中key是元素的键值,hash(key)的值是经过散列函数计算得到的散列值。散列表:存放记录的数组,也称为哈希表。特性确定性:如果两个散列值是不相同的(根据同一函数),那么这两个散列值的原始输入也是不相同的。散列碰撞(Collision):散列函数的输入和输出不是唯一对应关系的。

2024-09-18 17:23:26 910 1

原创 数据结构与算法-17高级数据结构_图论(迪杰斯特拉算法)

迪杰斯特拉算法(Dijkstra’s Algorithm),又称狄克斯特拉算法,是由荷兰计算机科学家埃德加·狄克斯特拉(Edsger Dijkstra)于1959年提出的一种用于解决有权图中最短路径问题的算法。该算法的核心思想是从一个指定的源点出发,逐步求出源点到图中其他所有顶点的最短路径。

2024-09-13 17:21:04 787

原创 数据结构与算法-16高级数据结构_图论(图论基础)

图(Graph)是一个用于描述一组对象之间关系的数学结构。这些对象被称为顶点(Vertex),也称为节点(Node)或点(Point),而对象之间的关系则通过边(Edge)来表示,边也称为链接(Link)或线(Line)。图通常以图解形式描绘为顶点的一组点或环,并通过边的线或曲线连接。

2024-08-12 19:31:56 745

原创 数据结构与算法-15高级数据结构_树论(堆树)

定义:堆树是一种特殊的完全二叉树,其中每个节点的值都遵循一定的堆属性。具体来说,堆分为最大堆和最小堆。最大堆:在最大堆中,每个父节点的值都大于或等于其任何子节点的值。这意味着根节点是树中的最大值。最小堆:在最小堆中,每个父节点的值都小于或等于其任何子节点的值。这意味着根节点是树中的最小值。完全二叉树:除了最后一层外,每一层都被完全填满,且所有节点都尽可能地向左对齐。这种结构使得堆可以用数组来高效地表示和实现。

2024-08-02 16:58:13 973 1

原创 数据结构与算法-14高级数据结构_树论(霍夫曼树)

霍夫曼树(Huffman Tree),又称最优二叉树或哈夫曼树,是一种具有特定性质的二叉树结构,广泛应用于数据压缩领域。霍夫曼树是一种带权路径长度最短的二叉树。在霍夫曼树中,每个叶子节点都代表一个字符,其权值通常表示该字符在数据中出现的频率或概率。非叶子节点的权值则是其子节点权值的和。霍夫曼树通过构建过程,确保树的带权路径长度(Weighted Path Length, WPL)最小,即所有叶子节点到根节点的路径长度与各自权值的乘积之和最小。

2024-07-29 17:11:18 1303

原创 数据结构与算法-13高级数据结构_树论(Btree&B+Tree)

B-树是一种自平衡的树形数据结构,它能够保持数据的有序性,并允许搜索、顺序访问、插入和删除操作都在对数时间内完成。与二叉树不同,B-树的每个节点可以拥有多于两个的子节点,这取决于树的阶(order)或度数(degree)。每个节点最多有M个子节点。每个非根节点至少有⌈M/2⌉个子节点(向上取整),根节点至少有两个子节点(除非它是叶子节点)。每个节点中的关键字数量比其子节点数量少一。即,如果节点有N个子节点,那么它将包含N-1个关键字。

2024-07-23 17:18:50 1371

原创 数据结构与算法-12高级数据结构_树论(红黑树)

定义:红黑树是一种每个节点都带有颜色属性的二叉查找树,节点颜色为红色或黑色。发明:红黑树由Rudolf Bayer在1972年发明,当时被称为平衡二叉B树(symmetric binary B-trees),后由Guibas和Robert Sedgewick修改为现今的“红黑树”。

2024-07-19 16:50:33 895

原创 数据结构与算法-11高级数据结构_树论(二叉搜索树&平衡二叉树)

二叉搜索树(Binary Search Tree,简称BST)是一种特殊的二叉树,它的左子树上所有节点的值都小于它的根节点的值,而右子树上所有节点的值都大于它的根节点的值。这种特性使得二叉搜索树在搜索、插入和删除操作中有着很高的效率。说明:左右子树有且只有一方的取值范围可以等于根节点,例如【左子树上所有节点的值都小于等于它的根节点的值】特性:左子树:如果左子树不空,则左子树上所有节点的值均小于它的根节点的值。右子树:如果右子树不空,则右子树上所有节点的值均大于它的根节点的值。中序遍历。

2024-07-17 17:35:25 762

原创 数据结构与算法-10高级数据结构_树论(树论基础)

概念数据结构中的“树”(Tree)是一种非常重要的非线性数据结构,它模拟了具有树状结构特点的数据集合。在树形结构中,每个元素被称为一个节点(Node),节点之间通过特定的关系连接,这些关系通常被描述为“父子”关系。树是由n(n≥0)个有限节点组成一个具有层次关系的集合。它有一个特殊的节点,称为根节点(Root Node),其余节点分成m(m≥0)个互不相交的有限集T1, T2, …, Tm,其中每一个子集Ti(1≤i≤m)又是一棵符合本定义的树,称为根的子树(Subtree)。特性层次性。

2024-07-15 14:15:45 716

原创 数据结构与算法-09贪心算法&动态规划

贪心算法(Greedy Algorithm)是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。贪心算法通常用于解决优化问题,如最小化成本、最大化收益等。然而,贪心算法并不总是能够得到全局最优解,但它具有直观、高效、易于实现等优点,因此在许多实际问题中得到了广泛应用。基本思想贪心算法总是从问题的某一个初始解出发。在每一步决策中,它总是做出在当前状态下最好或最优的选择,即局部最优解。通过每一步的局部最优选择,希望能够导致全局最优解。

2024-07-11 16:14:36 1208

原创 数据结构与算法-8排序算法思想一选择&冒泡&快排

选择排序(Selection Sort)是一种简单直观的排序算法。它的工作原理是:首先在未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。选择排序步骤在未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置。再从剩余未排序元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾。重复第二步,直到所有元素均排序完毕。选择排序分析时间复杂度:O(N^2)

2024-07-09 17:00:28 1004

原创 数据结构与算法-7排序算法思想一插入&希尔&归并

排序算法是将一组数据按照特定的顺序进行排列的算法。常见的排序算法包括快速排序冒泡排序希尔排序二分排序(归并)桶排序堆排序基数排序插入排序选择排序等。不同的排序算法具有不同的时间复杂度和空间复杂度,适用于不同的场景。插入排序是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入,直到整个序列有序。示例说明打扑克。分成两部分:一部分是你手里的牌(已经排好序),一部分是要拿的牌(无序)。把一个无序的数列一个个插入到有序数列中。

2024-07-05 15:55:25 926 1

原创 数据结构与算法-6递归&回溯&数论

递归是指一个函数在其定义中直接或间接调用自身的一种方法。简单来说,就是一个函数可以调用自己来完成某个任务。解决复杂问题:递归可以将一个复杂的问题分解为若干个较小的子问题,然后通过递归调用函数来解决这些子问题,从而最终解决整个问题。实现循环:递归可以实现类似于循环的功能,例如遍历一棵树或一个链表。简化代码:递归可以使代码更加简洁和易于理解,因为它可以避免使用循环和其他复杂的控制结构。提高程序的可读性。

2024-07-03 17:56:19 1062

原创 数据结构与算法-5基础数据结构-队列

队列是一种特殊的线性表,只允许在表的前端进行删除操作,在表的后端进行插入操作。队列具有先进先出(FIFO)的特点,即先进入队列的元素先出队列。队列可以用数组或链表实现,其特殊之处在于只允许在表的前段进行删除操作,在表的后端进行插入操作。队列是一种重要的数据结构,在实际应用中有着广泛的应用。队列的实现方式有数组实现和链表实现两种,在实际应用中需要根据具体情况选择合适的实现方式。队列的基本操作有入队和出队两种,在实际应用中需要根据具体情况选择合适的操作方式。

2024-07-01 18:19:21 272

原创 数据结构与算法-4基础数据结构-栈

栈是一种特殊的线性表,只能在表尾进行插入和删除操作,具有后进先出(LIFO)的特点。栈的应用场景很多,如括号匹配、浏览器的前进和后退功能等。栈可以用数组或链表实现,数组实现的栈更常用,因为它在内存访问上更快,且扩容相对简单。基于数组的栈——以数组为底层数据结构时,通常以数组头为栈底,数组头到数组尾为栈顶的生长方向基于单链表的栈——以链表为底层的数据结构时,以链表头为栈顶,便于节点的插入与删除,压栈产生的新节点将一直出现在链表的头部最大的区别就是扩容,链表天然支持动态扩容。栈溢出。

2024-06-28 18:30:28 779

原创 数据结构与算法-3基础数据结构-链表

链表是一种重要的数据结构,它可以动态地增加和删除节点,不需要预先分配连续的内存空间。单链表是最简单的链表结构,它只有一个指针,只能单向遍历。循环链表是一种特殊的单链表,它的尾节点指向头节点,形成一个环形结构。双向链表是一种更复杂的链表结构,它有两个指针,可以双向遍历。链表的应用非常广泛,例如LRU缓存淘汰算法和约瑟夫问题等。

2024-06-27 16:22:16 1000 1

原创 数据结构与算法-2基础数据结构-数组

数组是有序的元素序列,具有相同类型的变量集合。数组的特点包括:相同类型元素集合、各元素存储有先后顺序、连续存储、随机访问等。表现形式一维数组 Int a[],String a[]多维数组 Int a[][],int a[][][]。int a[m][n]:内存空间是多少?m*n优缺点:数组是连续的内存空间和相同类型的数据。正是因为这两个限制,它才有了一个非常重要的特性:随机访问。

2024-06-27 16:20:22 549

原创 数据结构与算法-1简介

数据结构与算法学习笔记,课程介绍课程时间为两个半月,共二十几节课。

2024-06-27 16:14:12 980

原创 多数据源&事务实现【atomikos&自定义注解】

springboot项目如何配置多数据源?多数据源之间的事务如何保证?1、使用mybatis java bean配置的方式配置多个数据源,每个数据源指定不同的扫描的路径2、使用atomikos实现多数据源之间的事务3、使用自定义注解+切面的方式实现数据源之间的事务实现

2023-10-17 15:15:09 431 2

原创 进程间的通信机制

进程通信

2023-09-05 10:34:07 397 1

原创 ChatGPT消息一点一点输出是怎么做到的&SseEmitter的

ChatGPT消息一点一点输出是怎么做到的

2023-06-16 15:45:56 1582

原创 spring Validation & Validation不生效情况

spring validation/springboot validation使用 与 不生效场景介绍

2023-06-06 17:14:40 3792 1

原创 curl get url

curl get json

2022-08-30 22:00:58 358

原创 The valid characters are defined in RFC 7230 and RFC 3986

The valid characters are defined in RFC 7230 and RFC 3986

2022-06-16 17:55:08 221

原创 list remove使用容易触发的问题

list remove使用容易触发的问题Java的List在删除元素时,一般会用list.remove(o)/remove(i)方法。在使用时,容易触碰陷阱,得到意想不到的结果。总结以往经验,记录下来与大家分享。首先初始化List,代码如下:package com.cicc.am.test; import java.util.ArrayList;import java.util.List; public class ListTest { public static void main(

2021-10-27 21:14:44 207

原创 threadLocal笔记

threadLocal笔记什么是threadLocalthreadLocal用于处理数据的隔离性,多个线程同时访问一个变量时,可能会出现错误的变量信息。这个使用可以使用线程同步机制处理或者使用threadlocal进行处理。线程同步机制和threadlocal之间的区别线程同步实现的是**“时间换空间”,threadlocal实现的是“空间换时间”**。线程同步:在一个线程进行访问时,会进行加锁,加锁之后其他的线程无法对该变量进行操作,只有在当前线程操作完毕后,释放锁,其他线程才能进行操作。t

2021-04-08 14:10:32 185

原创 什么是spring 初识spring

什么是spring 初识springspring是什么?spring(春天)—程序员的春天。spring是轻量级的ioc、aop容器框架。他简化了应用的开发,让程序员专注于业务逻辑的实现。spring iocioc主要有两个功能点–控制反转和依赖注入。控制反转:是将原本java对象的自主控制权转移到spring容器中,有spring容器进行java对象的实例化和管理。通俗的说就是原本java对象直接通过new创建出一个实例,现在将这个操作转移到spring容器,有spring容器进行。依赖注入

2021-04-05 09:34:08 274 3

原创 Mybatis的一级缓存和二级缓存

Mybatis的一级缓存和二级缓存Mybatis的一级缓存mybatis的一级缓存是默认开启的,每一次sql查询数据库都会将存储在缓存中,但是mybatis的一级缓存的作用域是session,也就是说mybatis进行数据库查询获取到的数据会存储在会话中,在同一个会话中,操作相同的sql语句–查询相同的数据,第一次查询从数据库中获取,第二次会直接在缓存**(session)**中获取。mybatis的二级缓存mybatis的二级缓存需要手动进行开启,mybatis的二级缓存与一级缓存之间的区别在于作

2021-04-04 10:05:30 198

原创 jquery-form使用的注意

@TOC欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;增

2021-02-08 15:22:48 109

原创 数据转换出现的异常

数据类型转换引起的异常处理数据转换过程中我们需要注意null和""数据转换过程中我们需要注意null和""在项目中,传输的参数出现""–空字符串的形式时,没有向null进行数据转换时一样报错。所以传输到后台的参数是直接将空字符串进行转换后的数据传输过去,这回造成后端代码接收到错误的数据信息,从而报出后端错误,使springmvc的异常处理跳转到错误页面...

2021-02-08 15:14:00 1694

原创 ApplicationEventMulticaster not initialized

Springmvc配置数据源出现的错误–出现特殊字符#这里介绍可能出现ApplicationEventMulticaster not initialized的一种情况,springmvc配置文件中配置数据源时存在特殊字符,需要进行转义处理

2021-02-06 20:49:27 1296

空空如也

空空如也

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

TA关注的人

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