自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【线段树】java代码实现

简介线段树是指使用二叉树形式表示一串数组形式的值,其中数组形式不被修改,实现区域求和区域修改。代码实现节点类构造属性min和max表示线段的起点和终点,site表示该节点在线段中的我位置,value表示该节点被赋予的值,left和right表示该节点关联的左右子树 int min=-1; int max=-1; int site=-1; int value=-1; Point left=null; Point right=null;构造方法构造

2021-12-15 14:19:27 928

原创 【前缀树】java代码实现

原理前缀树(字典树)用于将字符串拆解为多个字符,而后将这些字符依次插入树中。由根节点开始到各个叶子节点位置必为一个字符串,由根节点到各个非叶子节点组成字符串的子串。代码实现节点类节点类构造info字段表示字符串单个字符afters表示该节点的子字符节点集合 char info; HashSet<Point> afters;插入方法将一个字符传入,若已经存有拥有该字符的下一级子节点则将字符传递至下一子节点执行插入方法。 public Point add(c

2021-12-14 14:42:08 427

原创 【布隆过滤器】java代码demo

介绍布隆过滤器是指通过维护一张散列表对数据进行校验从而快速判定该数据是否存在于表中。在实际应用场景中主要用于预防恶意缓存击穿,一般在频繁查询的场景下,若大量恶意数据强行进行查询则会导致数据库和服务器压力过大,所有在查缓存之前往往会查询一下布隆过滤器验证此数据是否是原数据库中存在的有效数据。既然涉及到哈希算法就势必会有哈希碰撞,而碰撞结果往往会导致布隆过滤器的数据误判(将不存在的数据误判定为存在),我在这里选用哈希算法还需要很多优化,大家看个思路即可思路在这里首先模拟正常数据插入,先构建一个数据集合,

2021-12-13 15:04:42 451

原创 【HashMap】【链式处理】java代码实现

思路哈希表的实现关键有两个部分:哈希算法和冲突处理方式,java中使用的hashMap使用的冲突解决方式为链式,即出现冲突时,在冲突节点以链表形式向下传递数据,java8之后加上了一个对长度超过8的链表转变为红黑树的操作,进一步提升hashMap的查询效率。哈希算法源代码中的哈希算法较为复杂,在这里我单纯采用拆分字符为char数组,然后用累加的ascii码值对当前哈希表长度取余。冲突解决因为红黑树实现比较费时,我这里用纯链表处理哈希冲突代码实现节点类类构造key和value作为map对象的

2021-12-10 16:14:40 1461

原创 【多级反馈队列】【操作系统cpu时间片切换模拟】java代码实现

思路多级反馈队列多用于操作系统或其他存在线程分发工具类对cpu时间片的分发,一般情况下遵循时间耗时短的任务优先执行,耗时较久的任务在后执行且运行时间不超过单位时间片。代码实现任务构造类该类用于模拟需要系统执行的任务,构造方法为该任务名称和工作任务,工作任务在这里用整型int表示,-1表示执行完成一次,若任务执行完毕则返回false表示该任务可以从任务队列中排除。public class Task{ private int taskWork; private String name

2021-12-09 14:35:06 297

原创 【优先队列】java代码实现

思路优先队列是在遵循常规队列先进先出的规则下,采用最大最小堆排序思路实现的,保证了一定有序性同时保证运算量相对较小,这里仅实现最大堆的情况,最小堆类似代码实现构造类单纯为实现思路,所有用了arrayListprivate List<Integer> queue = new ArrayList<Integer>();入队方法入队方法从队尾插入,这里抽象化表示二叉树节点关系,左子树为其节点(数位+1)X2-1,右节点为其节点(数位+1)X2的位置,某节点的父节点为其节点(

2021-12-07 20:22:37 501

原创 【查并集】java代码实现

思路查并集是针对多树情况下的一种处理方式,核心是两个方法1.find():用于在多树情况下检查两个节点是否属于同一棵树内2.join():用于合并两棵树节点类构造info用于存储信息,pre用于存储该节点的前驱节点,isFather用于表示该节点是否是父亲节点 private int info; private Point pre=null; private Boolean isFather=true;find()方法递归获取该节点的最终父节点 public

2021-12-04 16:58:19 278

原创 【跳跃表】java代码实现

跳跃表思路跳跃表是基于链表外挂索引的一种实现,为解决链表遍历慢的问题,当数据链表的连续存储长度超过一定数量之后,将其中某一节点提为索引节点,数据节点与数据节点相关联,索引节点与索引节点相关联,索引节点管理目标数据节点。这里仅实现了单索引层,本来想实现动态增加索引层结果脑子不够用,大家当伪码看一下就行了。代码实现节点类构造节点构造为数据本身,前驱节点,后继节点,up节点(用于实现数据节点对索引节点的关联),down节点(用于索引节点对数据节点的关联) private int info;

2021-12-04 14:54:40 537

原创 【红黑树】java代码实现

二叉树java代码实现思路

2021-12-01 11:35:44 497

原创 【2-3-4B树】java代码实现(红黑树实现前置)

之前想实现红黑树来着,发现红黑树在遵循平衡二叉树规则的前提下,更多是2-3-4B树的二叉树形式实现思路2-3-4B树构造思路基于B树规则的基础之上,加上了每节点至多三个数值的限制。插入其插入规则于二叉查找树类似,小于则向左传递,反之则向右。传递至叶子节点时进行插入操作,若当前叶子节点已经满了,则需要向父节点传递最接近父节点的值的值,若没有父节点则选取第二或第三个节点抽离为父节点,其左右节点变为该父节点的左右子树。代码实现参数构造num1~num4从小到大视为节点的四个值,当4个值都存满时,则向

2021-11-29 20:20:36 162

原创 【AVL平衡二叉树】JAVA代码实现

【AVL平衡二叉树】JAVA代码实现实现思路二叉查找树二叉查找树实现平衡二叉树实现如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入实现思路AVL平衡二叉树,是在二叉查找树基础上加上了平衡功能,即依照平衡二叉树的规则插入数据之后,依旧要保证任意一个节点的左右子树深度相差不

2021-11-23 11:47:35 690

原创 java实现数据结构中的二叉查找树

java实现数据结构中的二叉查找树个人理解二叉查找树的首先一个原则即每一个节点在左子树和右子树都存在的情况下,必存在:左子树&lt;父节点&lt;右子树 这样的关系,当接收到一个数组的时候,根节点的合理取值会使得该二叉树的数据结构更高效,且节省资源。构造二叉树节点类/** * 树的单个节点 * Created by jim_D on 2018/10/12. */public cl...

2018-12-29 17:39:43 111

原创 java实现数据结构中的快速排序

java实现数据结构中的快速排序个人理解快速排序是指借用递归思想不断讲数组进行拆分排序,即选取任意一个元素作为改数组的中间元素,将该数组分为三部分:小于中间元素的数组;中间元素;大于中间元素的数组。将小于中间元素的数组,大于中间元素的数组再次进行上述算法,反复进行拆分,直到最底层得到三个数据:小于中间元素的数组(只有一个小于中间元素的数据);中间元素;大于中间元素的数组(只有一个大于中间元素...

2018-12-29 16:46:29 337

原创 JAVA数据结构与算法实现-哈夫曼树

JAVA数据结构与算法实现-哈夫曼树哈夫曼树,是一种特殊的二叉树,由一个叫做哈夫曼的人实现出来的,由于他的一致性所以数据统一。在这里我使用数组实现二叉树的原理。在这里我们首先创建一个二叉树节点的类,名为point:/*** Created by jim_D on 2018/10/11.*/public class point {int info;//定义节点的值point lef...

2018-10-12 13:03:57 630

原创 JAVA_Dom4j读取和写出xml文件

使用JAVA的Dom4j读取和写出xml文件博主的公司中开发的是一套多个系统集成开发出来的一套系统,其中系统与系统之间的数据传输方式使用的是xml文件,在这过程中需要大量的对xml文件进行处理,总结一下使用的经验,在这里使用的是dom4j的java jar包 首先需要往项目中引入jar包:dom4j-1.6.1.jar 版本什么的随便,网上都可以下载从xml文件中获取数据1.首先手...

2018-08-05 22:53:34 213

原创 基于IDEA的Servlet环境搭建和入门Demo

Servlet是java基础API,用于处理由前台发送回来的request请求和发送response响应至前台开发工具及开发环境:IdeaJDK1.8apache-maven-3.5.3apache-tomcat-8.5.31流程1.新建一个maven项目: 2.设置maven项目Facets: 3.设置maven项目Artifacts: 4.添加t...

2018-07-29 14:01:10 2097 1

空空如也

空空如也

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

TA关注的人

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