自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(685)
  • 资源 (14)
  • 收藏
  • 关注

原创 看图轻松理解桶排序

前言推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。桶排序桶排序即Bucket Sort,也称箱排序。其基本思想是将待排序数组分配到若干个桶内,然后每个桶内再各自进行排序,桶内的排序可以使用不同的算法,比如插入排序或快速排序,属于分治法。每个桶执行完排序...

2018-11-19 08:44:12 413

原创 看图轻松理桶排序

前言推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种...

2018-11-19 08:00:00 166

原创 聊聊机器学习的套路

前言这里说说机器学习问题分析的一般性过程,尽管存在各种各样的机器学习问题,但大体上的步骤及最佳实践都有一定的套路。理解问题首先得理解要解决的是什么问题,比如业务上要解决什么问题该问题涉及到的信息管道有哪些如何采集数据,数据源在哪数据是完整的吗,数据刻度最小是多少数据是定期发布的还是实时获取的确定影响模型的有价值因素工作量以上等等等等。ETL处理待收集的数据可能是表格数...

2018-11-15 08:34:46 426

原创 图论动态规划算法——Floyd最短路径

前言推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。Floyd算法Floyd是一种经典的多源最短路径算法,它通过动态规划的思想来寻找给定加权图中的多源点之间的最短路径,算法时间复杂度是O(n3)。之所以叫Floyd是因为该算法发明人之一是Robert F...

2018-11-12 08:33:46 3141 2

原创 如何从大量数据中找出异常值

前言机器学习中数据预处理阶段,首先要考虑的就是将数据集中的异常值找出来,然后再做额外处理。当然,异常值的处理并不存在什么银弹,只能具体情况具体分析再根据效果选择处理方法。直方图看看数据集直方图也许能看出点端倪,比如下面这个图,下方的是原始数据集,上面的是对应直方图,可以看到大多数都分布在11000左边,它的右边存在一些分布,这些分布极少的点很可能就是异常点。sigma原则一些简单的场景...

2018-11-08 08:30:59 9828

原创 看图轻松理解数据结构与算法系列(Radix树)

前言推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。Radix树Radix树,即基数树,也称压缩前缀树,是一种提供key-value存储查找的数据结构。与Trie不同的是,它对Trie树进行了空间优化,只有一个子节点的中间节点将被压缩。同样的,Radix...

2018-11-05 08:34:59 1546

原创 JDK并发AQS系列(五)

CLH锁的改进鉴于自旋锁的不足,Craig,Landin,Hagersten发明了CLH锁。而在CLH锁核心思想的影响下,Java并发包的基础框架AQS以CLH锁作为基础...

2018-11-01 08:00:00 152

原创 看图轻松理解数据结构与算法系列(快速排序)

前言推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。快速排序快速排序由C.A.R.Hoare在1962年提出,是冒泡排序的一种改进。其基本思想为:通过一趟排序将待排序数据分割成独立的两部分,其中一部分的所有值都比另一部分的所有值都小,然后再对分割的两部分...

2018-10-29 08:37:02 480 1

原创 JDK并发AQS系列(四)

自旋锁的不足前面说到用自旋方式来获取锁,能有效避免线程挂起和恢复。但它也有不足之处:仅适用于占用时间短、颗粒度很小的情景。需要硬件级别的原子操作。它无法保证公平性。每次读...

2018-10-25 08:00:00 180

原创 看图轻松理解数据结构与算法系列(红黑树)

前言推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。红黑树红黑(Red-black)树是一种自平衡二叉查找树,1972年由Rudolf Bayer发明,它与AVL树类似,都在插入和删除操作时能通过旋转操作保持二叉查找树的平衡,以便能获得高效的查找性能。...

2018-10-22 08:33:33 830

原创 JDK并发AQS系列(三)

锁的获取与释放在数据竞争情况下,一个线程只有在成功获取锁后才能继续往下执行,当离开竞争区域时将释放锁,释放的锁供其他即将进入数据竞争区域的线程获取。同步器一般用acqui...

2018-10-18 08:00:00 154

原创 看图轻松理解数据结构与算法系列(合并排序)

前言推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。合并排序合并排序也叫归并排序,它的主要思想是分治法,把待排序序列分为若干有序子序列,然后将两个或两个以上的有序子序列进行合并,得到一个新的完整的有序序列。所以首先得先对子序列进行排序,得到有序子序列,然...

2018-10-15 08:35:40 424

原创 JDK并发AQS系列(二)

原子性在研究JDK中AQS时,会发现这个类很多地方都使用了CAS操作,在并发实现中CAS操作必须具备原子性,而且是硬件级别的原子性,java被隔离在硬件之上,明显力不从心...

2018-10-12 08:00:00 143

原创 看图轻松理解数据结构与算法系列(NoSQL存储-LSM树)

前言推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。关于LSM树LSM树,即日志结构合并树(Log-Structured Merge-Tree)。其实它并不属于一个具体的数据结构,它更多是一种数据结构的设计思想。大多NoSQL数据库核心思想都是基于LSM...

2018-10-09 08:31:53 887 1

原创 JDK并发AQS系列(一)

历史1995年sun公司发布了第一个java语言版本,可以说从jdk1.1到jdk1.4期间java的使用主要是在移动应用和中小型企业应用中,在此类领域中基本不用设计大型...

2018-09-30 08:00:00 149

原创 看图轻松理解数据结构与算法系列(希尔排序)

前言推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。希尔排序希尔排序是希尔(Donald Shell)提出的一种排序方法,也属于插入排序,但是简单插入排序的高效版本,也称为缩小增量排序。基本思想是将待排序元素进行增量分组,然后在分组组内进行插入排序,随着...

2018-09-27 08:32:52 519

原创 浅聊卷积神经网络的发展

前言卷积神经网络的发展主要是为了解决人类视觉问题,不过现在其它方向也都会使用。发展历程主要从Lenet5->Alexnet->VGG->GooLenet->ResNet等。Lenet5上世界80年代发明了卷积层,但由于硬件限制无法构建复杂网络,直到后面90年代才开始有实践。1998年LeCun提出卷积层、池化层和完全连接层组合,以此来解决手写数字的识别问题。此时的效...

2018-09-23 10:30:53 2952 1

原创 看图轻松理解数据结构与算法系列(Trie树)

前言推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。Trie树Trie树,是一种搜索树,也称字典树或单词查找树,此外也称前缀树,因为某节点的后代存在共同的前缀。它的key都为字符串,能做到高效查询和插入,时间复杂度为O(k),k为字符串长度,缺点是如果大...

2018-09-19 08:30:24 621

原创 AIOps核心技术和算法要点

前言AIOps已经逐渐兴起,AI算法已较为成熟,使之与运维结合到了一起,下面列出AIOps相关技术和算法要点,有空了再展开写,懂大数据和机器学习的基本都知道各个组件及算法的作用。异常点检测正态分布异常检测马氏距离异常检测KNN异常检测密度异常检测独立森林异常检测故障分析关联规则相关性分析决策树分析分类预测贝叶斯神经网络决策树knn...

2018-09-15 17:19:07 3155

原创 看图轻松理解数据结构与算法系列(冒泡排序)

前言推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。冒泡排序冒泡排序是一种很简单的排序算法,主要思想就是不断走访待排序序列,每次只比较两个相邻元素,如果这俩元素顺序不符合要求则对换它们,不断重复知道没有相邻元素需要对换。在不断走访比较过程中,越...

2018-09-13 08:34:44 967

原创 看图轻松理解数据结构与算法系列(B树的删除)

删除操作删除操作比较复杂,主要是因为删除的项可能在叶子节点上也可能在非叶子节点上,而且删除后可能导致不符合B树的规定,这里暂且称之为导致B树不平衡,于是要进行一些合并、左旋、右旋等操作,使之符合B树的规定(即让B树平衡)。另外,如果是删除非叶子节点项需要先找到中序前驱来替换。情况一要删除的项在叶子节点上且不影响B树的平衡结构,比如删除“I”,从根节点开始查找,“I”大于“D”,往第...

2018-09-10 08:28:52 1027

原创 看图轻松理解数据结构与算法系列(B+树)

前言推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。B+树B+树是B树的一种变体,也属于平衡多路查找树,大体结构与B树相同,包含根节点、内部节点和叶子节点。多用于数据库和操作系统的文件系统中,由于B+树内部节点不保存数据,所以能在内存中存放更多...

2018-09-06 08:28:39 1029 4

原创 向JVM注册本地方法是怎么实现的

前言Java 中我们经常会遇到要调用本地方法的情况,而且 Java 核心库中的很多类也大量使用了本地方法,使用 JNI 时本地函数需要按照约定好的格式进行命名,如果不想写长长的函数名则需要将方法注册到 JVM 中,这里看看怎么向 JVM 注册本地方法。命名约定JVM 中对本地方法名有约定,在使用 JNI 时需要遵守,即为Java_<fully qualified class ...

2018-09-03 08:27:44 771 1

原创 看图轻松理解数据结构与算法系列(B树)

前言推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。B树B树即平衡查找树,一般理解为平衡多路查找树,也称为B-树、B_树。是一种自平衡树状数据结构,能对存储的数据进行O(log n)的时间复杂度进行查找、插入和删除。B树一般较多用在存储系统上,...

2018-08-30 08:30:12 932

原创 看图轻松理解数据结构与算法系列(2-3树)

前言推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。2-3树2-3树,是最简单的B-树,其中2、3主要体现在每个非叶子节点都有2个或3个子节点,B-树即是平衡树,平衡树是为了解决不平衡树查询效率问题,常见的二叉平衡书有AVL树,它虽然提高了查询...

2018-08-23 08:33:43 1054 1

原创 从Java到JVM到OS线程睡眠

前言Java 中有时需要将线程进入睡眠状态,这时一般我们就会通过Thread.sleep使线程进入睡眠状态,接下去就看看执行该语句在 JVM 中做了什么。简单例子以下是一个简单的例子,使主线程睡眠5秒钟。public class TestSleep { public static void main(String[] args) { try { ...

2018-08-20 08:32:29 774

原创 看图轻松理解数据结构与算法系列(选择排序)

前言推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。选择排序选择排序是一种很简单直观的排序算法,主要思想就是每次从待排序的元素中选择出最大或最小的那个元素,然后将其放至已排序序列的末尾,直到全部待排序序列都排序完毕。排序要点初始状...

2018-08-16 08:25:24 596

原创 从JDK源码看String(下)

lastIndexOf方法该方法用于返回指定字符在此字符串中最后一次出现处的索引,有多种方法参数。可传入 int 类型,也可传入 String 类型,另外还能传入开始位置。根据编码的不同分别用 Latin1 和 UTF16 两种方式处理。public int lastIndexOf(int ch) { return lastIndexOf(ch, length() - ...

2018-08-13 08:30:29 679

原创 看图轻松理解数据结构与算法系列(AVL树)

前言推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。AVL树AVL树,也称平衡二叉搜索树,AVL是其发明者姓名简写。AVL树属于树的一种,而且它也是一棵二叉搜索树,不同的是他通过一定机制能保证二叉搜索树的平衡,平衡的二叉搜索树的查询效率更高。...

2018-08-09 08:26:23 1139

原创 从JDK源码看String(上)

概况Java 语言使用 String 类用来代表字符串,实际上 String 对象的值是一个常量,一旦创建后不能被改变。正式因为其不可变,所以它是线程安全地,可以多个线程共享。相信对于 String 的使用大家都再熟悉不过的了,这里就了解下 JDK 中怎么实现 String 类的。继承结构--java.lang.Object --java.lang.String...

2018-08-06 18:44:10 2167 4

原创 看图轻松理解数据结构与算法系列(基于数组的栈)

前言推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。栈栈是一种线性存储结构且运算受限的线性表,它的插入和删除运算操作被限制在表的一端,该端称为栈顶,而另外一端则称为栈底。栈中的数据以后进先出(Last In First Out 即LIFO)...

2018-08-04 09:39:36 445

原创 看图轻松理解数据结构与算法系列(二叉搜索树)

前言推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。关于树对于树的数据结构大家都了解,只是树的类型有很多,所以可能又会对树产生一种陌生感。树其实就是由有限n(n>=1)个节点组成的一个具有层次关系的集合,它看起来像一棵倒挂的树,所以称之为...

2018-08-01 08:25:16 857

原创 看图轻松理解数据结构与算法系列(双向链表)

前言推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。双向链表双向链表属于链表的一种,也叫双链表双向即是说它的链接方向是双向的,它由若干个节点组成,每个节点都包含下一个节点和上一个节点的指针,所以从双向链表的任意节点开始,都能很方便访问他的前驱结...

2018-07-29 09:41:57 977

原创 看图轻松理解数据结构与算法系列(单向链表)

前言推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。单向链表单向链表属于链表的一种,也叫单链表,单向即是说它的链接方向是单向的,它由若干个节点组成,每个节点都包含下一个节点的指针。单链表特点创建单链表时无需指定链表的长度,这个比起...

2018-07-26 08:26:53 820

原创 看图轻松理解数据结构与算法系列(数组)

前言推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。数组数组是最熟悉也是最基础的一种结构了,有限个相同数据类型的元素按顺序排列的集合为数组。数组的数据是连续的,有上界下界,在其中的元素都有属于自己的索引值,即下标,通过这些下标就能定位到数组值。...

2018-07-23 08:23:09 740 3

原创 看图轻松理解数据结构和算法系列(数组)

前言推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种...

2018-07-23 08:00:00 118

原创 双数组Trie树高效构建有向无环图

图图是很常见的一种结构了,不管是数据结构算法中的各种图结构,还是机器学习中的概率图。图主要是由若干顶点及连接两顶点的边所构成的图形,通过它可以用来描述某些事物之间的某种特定关系。有向无环图有向无环图,即 Directed Acyclic Graph,属于有向图,图结构中不存在环,可用来表示事件之间依赖关系。Trie树Trie 是一种搜索树,它的 key 都为字符串,...

2018-07-19 08:33:13 1422

原创 《字符串连接你用+还是用StringBuilder》续

前言前面的一篇文章《字符串连接你用+还是用StringBuilder》,有朋友找我反馈了一些问题,其中一位朋友说JDK10下生成的字节码跟文章中并不一样,这里继续看下是什么情况。问题描述如下图,按照《字符串连接你用+还是用StringBuilder》的代码在 javap 后发现它并没有创建 StringBuilder 类和一些相应的操作,与文章的描述的并不符合,使用的JDK版本为J...

2018-07-16 08:21:26 905

原创 我的开源项目汇总(机器&深度学习、NLP、网络IO、AIML、mysql协议、chatbot)

TextAnalyzerhttps://github.com/sea-boat/TextAnalyzerA text analyzer which is based on machine learning,statistics and dictionaries that can analyze text. So far, it supports hot word extracting, ...

2018-07-12 08:39:05 3232 3

原创 AC自动机+trie树实现高效多模式匹配字典

前言经常会遇到一类需求,在一段字符串中查找所有能匹配上的模式,比如查找一段文字匹配上字典中哪些短语。这时为了高效处理,就会考虑 AC 自动机,即 Aho-Corasick 自动机算法。它的核心思想是通过有限自动机巧妙地将字符比较转化为了状态转移。通过 AC 自动机能做到匹配时不需要回溯,而且时间复杂度为 O(n),即时间复杂度与词典的规模无关。暴力匹配暴力匹配就是一个一个比较,...

2018-07-09 08:24:05 3088

The java.util.concurrent Synchronizer Framework

Doug Lea关于jdk里面并发同步器的实现。

2014-08-17

J2EE性能优化

J2EE性能优化

2013-09-06

Tomcat 架构 原理

Tomcat 架构 原理

2013-09-06

j2ee APIs 标准

JAVA EE APIs 标准 描述文档

2013-09-03

模仿GOOGLE自动提示功能

模仿GOOGLE自动提示功能 !

2010-08-06

extjs3.0API中文文档

ext3.0 API 中文文档 用ext的朋友可以下来查询

2010-08-01

extjs3.0API查询文档

extjs3.0API查询文档,有需要的朋友来下吧

2010-08-01

ssh2完整项目源代码

struts2完整项目源代码,可以下来学习,从整体体会ssh2

2010-07-30

struts2教程例子跟包

里面是struts2教程例子所需的包,学习受struts2的朋友可以下来看看

2010-07-30

最新的完整的ext包

这个是完整的ext包,开发ext的朋友来下

2010-07-30

struts2教程(简明扼要)

这个事struts2教程,简明,囊括了所有要点!现学现用.......

2010-07-25

内调焦望远镜课程设计

要做课程设计的同学们啊,来啊,内调焦望远镜课程设计

2010-06-03

ibatis教程 要的快点来下啊

ibatis教程 要的快点来下啊 请要的同学快来下

2010-06-03

空空如也

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

TA关注的人

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