自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (3)
  • 收藏
  • 关注

原创 Java数据压缩算法——哈夫曼树

一、简介 给定N个权值作为N个叶子节点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。 在计算机数据处理中,哈夫曼编码使用变长编码表对源符号(如文件中的一个字母)进行编码,其中变长编码表是通过一种评估来源符号出现机率的方法得到的,出...

2020-04-04 19:02:35 1395

原创 Java数据结构——树——红黑树

插入节点 新插入的节点颜色默认为红色 如果新插入节点的父节点颜色为红色 违反了性质4 1.新插入节点的父节点为其父节点的左子节点时,找到其叔叔节点 1.1 如果叔叔节点的颜色为红色时 1.1.1将插入节点的父节点和叔叔节点的颜色设置为黑色,并且将插入节点的祖父节点的颜色设置为红色,再将祖父节点设置为插...

2020-03-21 20:46:53 1083

原创 Java数据结构——树——AVL树

一、简介 在计算机科学中,AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为1,所以它也被称为高度平衡树。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。AVL树得名于它的发明者G. M. Adelson-Velsky和E. M. Landis,他们在1962年的论文《An algorithm for the organization of in...

2020-03-14 19:48:01 563

原创 Java算法——打印杨辉三角(递归—非递归)

一、前言 前段时间有学弟问我一些关于二维数组和for循环的题,在帮他解决问题的过程中,我发现了我很久之前对于相关知识的一些盲点部分,趁此机会,弥补一下自身的不足——那时候觉得杨辉三角很复杂,所以也就没继续坚持下去。 这篇博客就作为当时遗憾的完结。 二、杨辉三角介绍 以下内容引用自:https://baijiahao.baidu.com/s?id=160706365420...

2019-10-17 14:12:49 700

原创 kafka

目录 一、介绍 二、kafka环境搭建(win) 三、测试Demo 以下内容只是简单介绍和入门的Demo,如果有比较想深入理解kafka的同学可以看官网;像英语水平和我差不多的同学可以看这里 一、介绍 Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。...

2019-09-10 11:46:10 284

原创 Java节点遍历算法——图——深度优先算法(递归实现)

一.简介 深度优先搜索算法(Depth-First-Search),是搜索算法的一种。是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。属于盲目搜索。 深...

2019-06-05 18:33:31 3343

原创 Java节点遍历算法——图——狄克斯特拉算法(权重算法)

一、简介 迪杰斯特拉算法是由荷兰计算机科学家狄克斯特拉于1959 年提出的,因此又叫狄克斯特拉算法。是从一个顶点到其余各顶点的最短路径算法,解决的是有权图中最短路径问题。狄克斯特拉算法主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。 狄克斯特拉算法解决了有向图最短路径的问题。 二、实现思路 狄克斯特拉算法的实现大致可分为四个步骤: 1. 找出...

2019-04-18 19:51:25 663

原创 Java递归算法——汉诺塔

简介: 相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘(如下图)。游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。 ...

2019-03-30 23:30:43 269

原创 Java递归算法——猴子吃桃

偶然看到一个算法问题——猴子吃桃 题目如下: . 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个.第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第十天早上在想吃时,就只剩一个桃子了.求第一天共摘了多少个桃子? 分析: ...

2019-03-28 21:34:45 4500 5

原创 Java爬虫——jsoup爬取知乎内容并写入文件

引言:利用闲暇时间写了一个小爬虫,巩固Jsoup技术 注:此篇文章仅供学习使用 由于知乎的内容都是比较精彩和权威,网上很多文章也都是关于爬取知乎内容的,所以笔者也写了一个简单的小爬虫来获取知乎的内容 1.找到需要爬取的页面 2.分析页面数据 3. 找到上诉图片中返回值的请求信息 ...

2019-03-28 14:57:54 4712 1

原创 二分查找递归算法——java

引言:笔者发现这段时间访问量最多的文章是二分查找法,由此可见其重要性 恰巧最近对递归算法比较感兴趣,所以就写了这篇文章,希望能到帮助大家更加深刻的理解到二分查找算法和递归算法的美妙之处 /** * 递归二分查找法 * * @param arr 需要进行查询操作的数组 * @param len 数组的长度 * @param num 需要在数组中查询的数据 * @ret...

2019-03-27 23:27:58 410

原创 linux mongodb 安装

linux mongodb 安装 1.在linux中创建存放mongodb的文件夹 mkdir -p /usr/software/mongodb 2.在linux中创建存放mongodb数据文件的文件夹 mkdir -p /usr/software/mongodb/data 3.进入mongodb文件夹 cd /usr/software/mongodb 4.下载mongodb安装...

2019-03-04 10:47:35 239

原创 java排序算法——时间复杂度为O(n)

《剑指offer》中一个题目 1 简介: 优点: ​ 用空间代替时间,极大的提升了实现排序所用的时间效率 ​ 缺点: ​ 1.通过牺牲空间来提升时间,非常耗费内存资源 ​ 2.需要实现这个算法,必须知道传入的数组中的最大元素是多少,不然会引起索引越界等异常 2 代码实现 pub...

2019-01-01 01:47:34 1571 1

原创 java排序算法——归并排序

1 简介 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 2 实现思路 将数组分解直到分解的数组长度小于2 申...

2019-01-01 01:33:39 264

原创 java排序算法——希尔排序

1 简介 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序; 随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。 2 实现思路 划分出当前数组的最大增量 1.1 增量取法: 增量increment的取法有各种方案。最初shell提出取increment=n/2向下取整,increment=in...

2019-01-01 01:13:18 259

原创 微服务——consul注册中心

目录 1、简介 2、原理 3、安装、配置consul 4,创建服务注册:提供者 5、创建服务消费者 5、测试 1、简介 上述内容大致意思是:关于eureka 2.0的现有开源工作已经停止。作为2.x分支上现有工作存储库的一部分发布的代码库和工件被视为使用,风险自负。 简单来说就是目前已经闭源了 不过大家不用惊慌,除了Eureka之外,我们还有更...

2019-01-01 01:04:02 1383

原创 JAVA设计模式——原型模式

原型模式 原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新...

2018-12-11 11:15:12 182

原创 JAVA设计模式——构造者模式

构造者模式 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 一个 Builder 类会一步一步构造最终的对象。 该 Builder 类是独立于其他对象的。 比如我要创建一个学生, 但是 我创建的学生有些特别。 比如 一个学生没有性别,另一个又没有年龄。 在...

2018-12-11 10:42:30 371 2

原创 JAVA设计模式——工厂—抽象工厂模式

1、工厂模式 常用的工厂模式是静态工厂,利用static方法,作为一种类似于常见的工具类Utils等辅助效果。 注:为了让大家更直观,笔者采用类部类的方式示例 // 示例接口 public interface FactoryExample { class A implements FactoryExample { public A() { ...

2018-12-11 10:31:31 165

原创 Java节点遍历算法——图——广度优先算法

1.简介 广度优先算法(Breadth-First Search),同广度优先搜索,又称作宽度优先搜索,或横向优先搜索,简称BFS,是一种图形搜索演算法。简单的说,BFS是从根节点开始,沿着树的宽度遍历树的节点,如果发现目标,则演算终止。广度优先搜索的实现一般采用open-closed表。 BFS是一种盲目搜寻法,目的是系统地展开并检查图中的所有节点,以找寻结果。换句话说,它并...

2018-12-01 10:42:57 1309

原创 JAVA设计模式——代理模式

1,代理模式 2012年8月,在伦敦奥运会乒乓球男单决赛中,张继科以4-1战胜王皓夺得冠军;同时,他也实现了世锦赛、世界杯、奥运会三项冠军的大满贯,成为在中国男乒历史上继刘国梁和孔令辉之后的第三位大满贯选手。 ​ 作为一名职业运动员,毫无疑问 他的能力非常厉害 一直都是我的偶像 ​ 他的乒乓球技术非常高超,但是他因为要参加日常的训练,所以没有多余的时间来管理日常琐事。 ​ 所以张继科会找...

2018-11-29 11:10:50 285

原创 java反射 —— Class类简单介绍

反射机制的实现 主要通过 操作java.lang.Class类 目录 1.1 Class类 简介 1.2 class类 特点 1.3 class类 方法简介 1.4 class类 简单调用 1.4.1 定义Bean类 1.4.2 class反射字节码获取对象 1.4.3 constructors方法反射构造方法并调用 1.4.4 field反射对象属性并调用 1.4.5 ...

2018-11-27 11:22:53 1300

原创 JAVA设计模式——策略模式

1 策略模式 1.1 前言 比如:在电影院中,目前有以下几部电影正在上映:《毒液》,《肖申克的救赎》,《冒牌上尉》,我们需要提前知道预订多个座位的价格是多少 在程序中,我们可以这样定义: public class Cinema { ​ private static final int VENOM = 1; private sta...

2018-11-23 00:00:18 224

原创 java排序算法——选择排序

选择排序(Selection sort)是一种简单直观的[排序算法]它的工作原理是每一次从待排序的[数据元素]中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。 选择排序输出的是原序列的一个重排<a1*,a2*,a3*,...,an*>;,使得a1*<=a2*<=a3*<=......

2018-11-20 10:42:48 583

原创 java排序算法——插入排序

有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将...

2018-11-20 10:37:06 291

原创 java排序算法——快速排序

说到排序算法,就不得不说优雅而简练的一种算法——快速排序算法。 快速排序是目前使用率最多,效率最高,速度最快的一种排序算法。 作为排序算法界的扛把子,快速排序算法无疑是程序员首选的一种排序算法。 首先选择一个数据作为基准,然...

2018-03-20 17:52:46 351

原创 java算法——二分查找法

二分查找法是一种拥有非常高效的数据查找的算法,它的查找效率会随着数据的增长而增长。 比如:你有一个 1-100 的数据。 如果你使用普通的查找方式,你最多会查找100次,而如果数据是一千,一万的话,你可能就会查找一千,一万次 所以普通的查找方式在开发中,是不怎么可取的。 但如果使用二分查找法,那么效率便会大大增加。 ...

2018-03-20 11:43:02 1155 3

原创 java排序算法——冒泡排序

你想对数据进行排序,有许多算法可以实现排序 在这里,我给大家介绍排序算法之一的冒泡算法 实现思路: 比较相邻的两个元素,如果第一个比第二个小(大),则交换它们的位置。 重复当前动作,直到排序完成 如: 3 , 5 , 2 , 7 , 9 , 6 ...

2018-03-20 00:28:31 260

原创 欧几里得递归算法——java

比如:求4524和321的最大公约数 4524 = 14 * 321 + 30 321 = 10 * 30 + 21 30 = 1 * 21 + 9 21 = 9 * 2 + 3 2 != 3 所以 4524 和 321 的最大公约数是 3 欧几里得算法...

2018-03-19 23:59:16 678

红黑树插入删除的平衡操作

红黑树插入,删除时各种状态的平衡操作。

2020-03-17

红黑树插入与删除.xmind

红黑树的插入与删除各种情况,内容更正了之前版本的错误

2020-03-26

红黑树的插入与删除(改)

红黑树的插入与删除,验证并更正了文档的一些错位。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2020-03-20

空空如也

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

TA关注的人

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