自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大鱼

O ever youthful, O ever weeping.

  • 博客(211)
  • 资源 (110)
  • 收藏
  • 关注

原创 深入理解Aho-Corasick自动机算法

0.前言 我总是对那些具有状态转移过程的算法,心怀敬意。 例如:递归、递推、动规、DAT 以及现在要说的 AC 自动机算法。 数学真是优美! —— 致那些牛逼到不行的数学家们1.版权说明商业转载请联系作者获得授权,非商业转载请注明出处。本文作者:Q-WHai发表日期: 2015年...

2015-10-24 13:04:39 23063 7

原创 FFmpeg常用命令合集

概述最近工作中涉及到一些视频处理的技术,比如获取视频时长、获取视频关键帧、视频剪辑等。版权说明著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。本文作者:Q-WHai发表日期: 2019年07月16日本文链接:https://qwhai.blog.csdn.net/article/details/99719520来源:CSDN更多内容:分类 >>...

2019-08-19 13:09:24 1281

原创 SymmetricDS 完全配置安装手册

SymmetricDS 是一个基于 Java 的数据库同步框架。本文并不打算带你熟悉 SymmetricDS 的实现原理,只是从安装与配置入手,让你感受一下 SymmetricDS 运行效果。本文希望尽可能全面且细致地讲解配置过程,而不至于你按照本文的教程安装,出现无法使用的情况。以下是我在安装环境时配置的一些记录,希望于你有益。

2016-07-12 18:04:24 9718 8

原创 决策树之 C4.5 算法

由于 C4.5 算法是建立在 ID3 算法基础之上的,所以在讲解 C4.5 的时候,会有很多与 ID3 重合的内容,这里就不过多冗余地说明了。本文旨在阐明 ID3 存在的问题,以及 C4.5 的改进方案。

2016-07-06 16:42:54 10709 9

原创 决策树之 ID3 算法

ID3 算法是构建决策树算法中一种非常重要的算法,可以说它是学习决策树算法的基础吧。比如,下一篇博客要说的 C4.5 决策树,就是基于 ID3 上的一个改进算法。还有 CART、随机森林算法,都是后面要讲解的。

2016-07-06 13:05:54 14819 2

原创 MapReduce 应用:TF-IDF 分布式实现

本文要说的 TF-IDF 分布式实现,运用了很多之前 MapReduce 的核心知识点。算是 MapReduce 的一个小应用吧。

2016-06-24 00:29:45 9478 3

原创 MapReduce 进阶:Partitioner 组件

Partitioner 组件可以让 Map 对 Key 进行分区,从而将不同分区的 Key 交由不同的 Reduce 处理。如果这么说让你觉得有一些笼统的话,那么本文可能很适合你,因为本文会依据一个具体的实例进行讲解。

2016-06-21 23:47:47 14648

原创 Hadoop 核心编程之 HDFS 的文件操作

本文以代码为主,并附以简短的说明,帮助你理解代码的逻辑,以及一些注意事项。你可以将本文的代码封装成一个工具类,这样以后需要调用时候,就可以复用了。

2016-06-21 16:37:45 4521 2

原创 MapReduce进阶:多路径输入输出

当我们得意于 MapReduce 从一个数据输入目录,把数据经过程序处理之后输出到另一个目录时。可能你正在错过一些更好的方案,因为 MapReduce 是支持多路径的输入与输出的。比如,你一个项目中的多个 Job 产生了多个输出路径,后面又需要另一个 Job 去处理这些不路径下的数据。你要怎么办?暂停程序后,手动处理?看完本文,我想你会给你的这种想法来上一记耳光。

2016-06-18 21:29:50 6392

原创 MapReduce进阶:多MapReduce的链式模式

我们不可能一直沉浸在 WordCount 的成功运行当中,就像之前学习 Java 或是其他编程语言不会着迷于 HelloWord 一样。前面的 WordCount 程序只有一个 Mapper 和一个 Reducer 参与,也就是说只有一个 Job 参与。而一个 Job 在通常情况下是无法满足实际的开发需求,我们需要有更多的 Job 参与其中,并贡献自己的力量。

2016-06-18 16:20:50 4597

原创 排序算法系列:基数排序

今天要说的这个排序算法很特殊,它不需要直接对元素进行相互比较,也不需要将元素相互交换,你需要做的就是对元素进行“分类”。这也是基数排序的魅力所在,基数排序可以理解成是建立在“计数排序”的基础之上的一种排序算法。在实际项目中,如果对效率有所要求,而不太关心空间的使用时,我会选择用计数排序(当然还有一些其他的条件),或是一些计数排序的变形。

2016-06-16 23:14:07 83027 22

原创 从 WordCount 到文档的倒排索引详解

在很多大数据的应用场景中我们都有可能看到倒排索引的身影,我第一次接触倒排索引是在学习 Lucene 全文检索框架的时候。本文会从倒排索引开始说明,再补充讲解倒排索引文档及带权重的倒排索引文档。

2016-06-13 18:10:13 10727

原创 HBase Shell 的基本操作

前面写了一些 Hadoop, Zookeeper 及 Hbase 分布式环境搭建的文章。或许你在搭建的过程中遇到了一些不如意的事情,但我相信总是可以解决的。如果你已经完成了环境的搭建,那么就可以尽情玩耍了。

2016-06-12 15:10:45 6804

原创 HBase 0.98 分布式集群安装详解

这篇博客应该很早就发表了,只是当时环境搭建好了之后没有及时做笔记,后来又不想重新搭建,所以才拖到今天。还有就是这篇博客安装的是 Hbase-0.98 的版本,与之前说要安装 0.96 的说明不吻合,这里统一说明,之前的博客就不更改了。还有一点就是,本文的安装过程很顺,没有出现什么启动不了,或是运行异常的行为。如果你在安装的过程出现了一些不好的事情,那么你可能会在本文中找到一些蛛丝马迹,也可能一无所获。只是我希望你可以

2016-06-08 00:02:00 5886

原创 Java 设计模式——状态模式

很多人在说状态模式的时候总拿策略模式来进行对比,可能他们的类图会有一点类似,可我却不认为他们有多么相像。你可以阅读《Java设计模式——策略模式》这篇博客,并与本文对比,以找到蛛丝马迹。他们最根本的差异在于策略模式是在求解同一个问题的多种解法,这些不同解法之间毫无关联;状态模式则不同,状态模式要求各个状态之间有所关联,以便实现状态转移。

2016-06-06 16:46:00 15446 2

原创 Java 设计模式——外观模式

今天要说的外观模式是一个相对简单的设计模式,而且在日常的开发中,可能你也会时常使用它,只是你可能并未想过这是一个设计模式。本文会从一些实例着手,来对本文要说明的外观模式进行尽可能全面的讲解。希望于你有益。

2016-06-06 00:11:17 6014 2

原创 排序算法系列:归并排序算法

上一篇我们说了一个非常简单的排序算法——选择排序。其复杂程序完全是冒泡级的,甚至比冒泡还要简单。今天要说的是一个相对比较复杂的排序算法——归并排序。复杂的原因不仅在于归并排序分成了两个部分进行解决问题,而是在于,你需要一些算法的思想支撑。

2016-05-27 16:32:19 24075 3

原创 排序算法系列:选择排序算法

选择排序算法也需要将一个完整的序列切分成两个部分,一个部分有序,一个部分无序。这一点它和插入排序是一致的。在前面我们说插入排序是将第 [i + 1] 个元素插入到第一部分的有序序列中,如果你还有印象的话。那么在选择排序中则是第 j 个元素(i < j <= n),插入到第 i 个位置。

2016-05-24 17:20:39 3526

原创 ZooKeeper 3.4.5 分布式环境搭建详解

上一篇中,我们说到了关于 Hadoop-2.2.0 集群的搭建。在这个系列中,Zookeeper 是必不可少的。本文会介绍 Zookeeper-3.4.5 的安装,后面会介绍 HBase-0.96 的安装。希望于你有益。

2016-05-18 17:25:13 7336

原创 Java 设计模式——组合模式

有时我们可能会被要求处理一个层级结构明显的对象,比如上下级的公司员工、比如层级嵌套的文件夹,还有丰富多彩的美食菜单。可是,我们可能要屡试不爽地编写深度搜索代码、要小心翼翼地编写递归逻辑。现在你可以忘掉这些,学习一些新的技能,让你秒刷副本。

2016-05-17 17:39:45 19167 1

原创 从 WordCount 到 MapReduce 计算模型

虽然现在都在说大内存时代,不过内存的发展怎么也跟不上数据的步伐吧。所以,我们就要想办法减小数据量。这里说的减小可不是真的减小数据量,而是让数据分散开来。分开存储、分开计算。这就是 MapReduce 分布式的核心。

2016-05-10 23:42:47 11233

原创 Hadoop 2.2.0 集群搭建

在前面我有写过关于 Hadoop 集群的搭建,不过之前的 Hadoop 是 1.x 版本的。目前是基于 2.x 版本的 Hadoop,与之前的 1.x 版本的差别还是挺大的。以及更为详细的 SSH 免密码互连登录的配置过程。所以,这里也把我搭建的过程记录下来了。希望于你有益。

2016-05-04 17:56:18 11835 1

原创 DNS 截持模拟及环境搭建

这里的 DNS 服务器是配置在主机 172.16.2.51 上的,DNS 服务器上针对 www.baidu.com 的域名进行重定向。另外有两台 Android 机连接到此 DNS 服务器。第一台直接与此 DNS 服务器进行交互,第二台通过第一台共享的热点与 DNS 进行交互。

2016-05-03 18:50:29 6307

原创 Java 消息机制之回调详解

Java 中的回调机制是一个比较常见的机制,只是有可能在你的程序中使用得比较少,在一些大型的框架中回调机制随处可见。而在之前的博文《Java设计模式——观察者模式》及 Android 中对 ListView 的相关操作也有回调身影。本文就通过一些具体的实例,慢慢走近 Java 的回调机制。

2016-04-24 03:44:38 8319 2

原创 Scapy 伪造网络数据包

这里说明的数据包伪造只是伪造数据包发送的源地址。网络上有一些有人说可以对数据包内容的伪造(修改)和转发,不过目前还没找到这一点是如何完成的,甚至是在官方提供的文档上也没有看到这一类操作的说明。

2016-04-20 10:02:16 21497

原创 LeetCode-73. Set Matrix Zeroes

Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.Could you devise a constant space solution?

2016-04-17 22:46:42 4000 1

原创 交互式数据包处理程序 Scapy 入门指南

Scapy 是一个强大的交互式数据包处理程序(使用python编写)。它能够伪造或者解码大量的网络协议数据包,能够发送、捕捉、匹配请求和回复包等等。它可以很容易地处理一些典型操作,比如端口扫描,tracerouting,探测,单元测试,攻击或网络发现(可替代hping,NMAP,arpspoof,ARP-SK,arping,tcpdump,tethereal,P0F等)。最重要的他还有很多更优秀的特性——发送无效数据

2016-04-13 11:49:25 24897

原创 排序算法系列:Shell 排序算法

概述希尔排序(Shell Sort)是 D.L.Shell 于 1959 年提出来的一种排序算法,在这之前排序算法的时间复杂度基本都是 O(n2n^{2}) 的,希尔排序算法是突破这个时间复杂度的第一批算法之一。希尔排序是一种插入排序算法。

2016-04-12 00:54:00 8584 1

原创 单例模式在多线程中的安全性研究

关于一般单例模式的创建和分析在我的另一篇博客《Java设计模式——单件模式》中有详细说明。只是在上篇博客中的单例是针对于单线程的操作,而对于多线程却并不适用,本文就从单例模式与多线程安全的角度出发,讲解单例模式在多线程中应该如何被使用。

2016-04-06 14:13:33 4036

原创 MySQL 性能优化技巧(一)

这里是记录一些本人在看书或是开发过程中遇到的一些数据库的性能优化问题,希望与君共勉。

2016-04-05 09:59:09 1339

原创 Java 多线程之 synchronized 和 volatile 的比较

在做多线程并发处理时,经常需要对资源进行可见性访问和互斥同步操作。有时候,我们可能从前辈那里得知我们需要对资源进行 volatile 或是 synchronized 关键字修饰处理。可是,我们却不知道这两者之间的区别,我们无法分辨在什么时候应该使用哪一个关键字。本文就针对这个问题,展开讨论。

2016-04-05 09:50:24 5700 4

原创 Java设计模式——桥模式

桥模式(Bridge)是为了解决将抽象部分与实现部分分离,好让他们都在自己的维度上有多维度地变化。这句话是好理解的,只是我在学习完桥模式之后,存在一些疑问,还好现在想通了。现在我就桥模式的设计思想和我的疑问一并发出,希望于你有益。

2016-03-31 11:07:30 3985 3

原创 全排列算法的全面解析

对数组进行全排列是一个比较常见问题,如果是一个比较喜欢考算法的公司(貌似一些大公司都比较喜欢考算法),那么估计就会考察应聘者这个全排列的问题了(就算不让你编写完整代码,也会让你描述大致的思路)。这个问题也难也难,说易也易,下面我就来对这个问题进行一个比较全面的解析吧。如有遗漏,还望指正。

2016-03-27 00:10:50 41737 15

原创 排序算法系列:插入排序算法

直接插入排序(Straight Insertion Sort)的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表。

2016-03-24 08:53:18 13182 5

原创 MySQL多表查询核心优化

在一般的项目开发中,对数据表的多表查询是必不可少的。而对于存在大量数据量的情况时(例如百万级数据量),我们就需要从数据库的各个方面来进行优化,本文就先从多表查询开始。

2016-03-22 17:00:33 32519 5

原创 Python命令行选项参数解析策略

概述在Python的项目开发过程中,我们有时需要为程序提供一些可以通过命令行进行调用的接口。不过,并不是直接使用 command + 当前文件 就ok的,我们需要对其设置可选的各种各样的操作类型。所以,这种情况下我们就有必要对传入的参数进行解析操作。下面就此问题提出几种不同的解决策略,希望于你有益。版权说明著作权归作者所有。 商业转载请联系作者获得授权,非商业转载请注明出处。

2016-03-18 10:30:14 8351

原创 深入理解Lambda

概述  Lambda是一个表达式,也可以说它是一个匿名函数。然而在使用它或是阅读Lambda代码的时候,却显得并不那么容易。因为它匿名,因为它删减了一些必要的说明信息(比如方法名)。下面就来说说Lambda是如何进行转换和工作的吧。版权说明著作权归作者所有。 商业转载请联系作者获得授权,非商业转载请注明出处。 作者:Q-WHai 发表日期: 2016年3月10日 链接:

2016-03-10 17:18:43 44861 5

原创 Java设计模式——迭代器模式

概述 网上大部分人说迭代模式的时候,总是以某一种可遍历的对象为例进行介绍。这是可行的,这也是迭代模式的基本原型。当我看到《Head Frist设计模式》中迭代模式的时候,感觉要是能从另一个角度来说明,可能更能够体现迭代模式的威力所在。 本文介绍的这种迭代模式,倒是更像是适配器-迭代器模式。希望于你有益~版权说明著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注...

2016-03-04 12:39:41 5310 2

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

概述 原型模式是为了解决一些不必要的对象创建过程。当Java JDK中提供了Cloneable接口之后,原型模式就变得异常的简单了。虽然由于Cloneable的引入使用程序变得更简单了,不过还是有一些需要说明和注意的东西在里面的。文本就详细讲解一下这些注意事项吧。版权说明著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。本文作者:Q-WHai发表日期: ...

2016-03-03 13:50:15 4009

原创 排序算法系列:快速排序算法

概述 在前面说到了两个关于交换排序的算法:冒泡排序与奇偶排序。  本文就来说说交换排序的最后一拍:快速排序算法。之所以说它是快速的原因,不是因为它比其他的排序算法都要快。而是从实践中证明了快速排序在平均性能上的确是比其他算法要快一些,不然快速一说岂不是在乱说?  本文就其原理、过程及实现几个方面讲解一下快速排序算法。版权声明著作权归作者所有。 商业转载请联系作者获得授权,...

2016-03-01 15:40:07 49828 8

Android EasyTouch

Android EasyTouch 快捷

2015-07-13

Demo-NetCommunication

这里是对之前的Python访问Mysql数据库代码的一个优化程序。

2015-07-07

Android二维码扫描原版和修正版本

Android二维码扫描原版和修正版本:包含Google原版代码和修改后的版本。

2015-06-30

Android程序监听自身被卸载

Android程序监听自身被卸载后打开浏览器

2015-06-30

Android监听自己的程序被卸载

Android通过调用C来监听自己的程序被卸载。

2015-06-26

Android 图灵机器人

图灵机器人 智能 聊天 识别 Java Android

2015-05-27

Android涂鸦及刮刮乐示例

Android涂鸦及刮刮乐示例

2015-05-25

Android控件ActionBar浅析及适配2.x的方法介绍

Android控件ActionBar浅析及适配2.x的方法介绍

2015-05-25

DemoFingerErase

Demo Finger Erase 涂鸦

2015-05-22

Java设计模式-装饰者模式

本章可以称为“给爱用继承的人一个全新的设计眼界”。我们即将再度探讨典型滥用问题。你将在本章学到如何使用对象组合的方式,做到在运行时装饰类。为什么呢?一旦你熟悉了装饰者的技巧,你将能够在不修改任何底层代码的情况下,给你的(或别人的)对象赋予新的职责。——《Head First 设计模式》

2015-05-20

QQ数字提示的粘连效果

高仿QQ数字提示的粘连效果 内含两个相关demo示例

2015-05-20

自定义广告控件

Android 自定义实现广告控件 欢迎下载

2015-05-20

Android手势识别-多点触控

Android手势识别-多点触控。 包含在画布中的多点触控和利用多点触控实现图片的放大和缩小

2015-05-20

DemoSwipeLayout

Demo SwipeLayout QQ 滑动删除

2015-05-19

AndroidRecyclerViewSample

实现RecyclerView的上拉和下拉刷新

2015-05-18

AndroidDemoRecyclerView

RecyclerView 是 android-support-v7-21 版本中新增的一个 Widgets, 官方介绍 RecyclerView 是 ListView 的升级版本,更加先进和灵活。

2015-05-18

Java各种排序算法Demo

这里包含了使用Java编写的各种排序算法

2015-05-14

Java设计模式——观察者模式

Java设计模式——观察者模式的两种情况。

2015-05-04

DemoAndroidEventBus

Demo Android EventBus 事件总线 退出程序

2015-04-23

Python访问MySQL并实现增删改查

使用Python访问MySQL并实现增删改查

2015-04-21

MapReduce多路径输入输出

这是 MapReduce 的多路径输入输出示例代码。有关大数据的相关文章可以阅读我的专栏:《大数据之Hadoop》 http://blog.csdn.net/column/details/bumblebee-hadoop.html

2016-06-18

RSA加密算法源码

RSA加密算法源码 详情参见:http://blog.csdn.net/lemon_tree12138/article/details/50696926

2016-02-23

RSA算法源码

使用Java实现RSA加密及解密算法。详情参见: http://blog.csdn.net/lemon_tree12138/article/details/50696926

2016-02-19

Java实现与FTP服务器的数据传输2

Java实现与FTP服务器的数据传输。 其中包含了两种实现方法。详情请参见本人博客: http://blog.csdn.net/lemon_tree12138/article/details/49777467

2015-11-12

Java实现与FTP服务器的数据传输

Java实现与FTP服务器的数据传输 详情参见:http://blog.csdn.net/lemon_tree12138/article/details/49777467

2015-11-11

Aho-Corasick自动机实现

更多关于AC算法和AC自动机的说明,请参见 http://blog.csdn.net/lemon_tree12138/article/details/49335051

2015-10-23

DoubleArrayTrie(双数组Trie树)

关于本源码更详细的解释说明,请参见:http://blog.csdn.net/lemon_tree12138/article/details/49281865

2015-10-22

字典树(Trie)的基本使用

包含了对字典树的多种操作。详情请见本人博客:http://blog.csdn.net/lemon_tree12138/article/details/49177509

2015-10-16

算法:Java对拼音进行智能切分

关于代码的详细说明博客地址:http://blog.csdn.net/lemon_tree12138/article/details/49074809

2015-10-13

数据挖掘:基于朴素贝叶斯定理的文本分类实践(Java)

数据挖掘:基于朴素贝叶斯定理的文本分类实践(Java)

2015-09-17

模式匹配之KMP算法(Java版)

本文档为使用Java代码实现了: 1.朴素的字符串匹配算法; 2.KMP字符串模式匹配算法 详细说明请参见博客: http://blog.csdn.net/lemon_tree12138/article/details/48488813

2015-09-16

获取网站标题和描述及对相关信息进行分词处理

这里包含两个项目工程一个是获得网站中的标题和描述,另一个是对一个文本进行分词操作。具体博文详情可以在本人博客中参考:http://blog.csdn.net/lemon_tree12138

2015-09-15

apache-nutch-1.4-bin.tar.gz

Nutch 是一个开源Java 实现的搜索引擎。这里是它的安装包。

2015-08-17

图的深度和广度遍历(Java实现)

使用Java实现图的深度优先和广度优先遍历算法

2015-08-06

RecyclerView中嵌套CardView

在RecyclerView中嵌套CardView

2015-08-04

Android利用贝塞尔曲线实现点赞效果

Android利用贝塞尔曲线实现点赞效果

2015-08-04

算法之动态规划初步(Java版)

算法之动态规划初步(Java版) http://blog.csdn.net/lemon_tree12138

2015-08-04

Python的pycrypto模块安装包

里面包含了paramiko-1.7.7.1.tar和pycrypto-2.4.1.tar

2015-07-29

Android轻量级的提示控件:Snackbar

Snackbar提供了一个介于Toast和AlertDialog之间轻量级控件,它可以很方便的提供消息的提示和动作反馈。

2015-07-16

Android滑动返回

SwipeBackLayout 滑动返回 Android

2015-07-15

空空如也

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

TA关注的人

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