自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (5)
  • 收藏
  • 关注

原创 使用 LinkedHashMap 实现 LRU 算法

LRU是Least Recently Used 的缩写,翻译过来就是“最近最少使用”,LRU缓存就是使用这种原理实现,简单的说就是缓存一定量的数据,当超过设定的阈值时就把一些过期的数据删除掉,比如我们缓存10000条数据,当数据小于10000时可以随意添加,当超过10000时就需要把新的数据添加进来,同时要把过期数据删除,以确保我们最大缓存10000条。LinkedHashMap自身已经实现了LR

2017-07-20 15:38:42 446

原创 二叉查找树(Binary Search Tree)

二叉查找树(英语:Binary Search Tree),也称二叉搜索树、有序二叉树(英语:ordered binary tree),排序二叉树(英语:sorted binary tree),是指一棵空树或者具有下列性质的二叉树: 若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 任意节

2017-07-19 11:07:25 740

原创 两个有序数组合并为一个有序数组

把两个有序数组合并为一个有序数组,例如: 数组A:1,2,2,3,5,6,7,7 数组B:1,2,4,5,8,8,9,10,11,12,12,13,14 合并后应该为: 1, 1, 2, 2, 2, 3, 4, 5, 5, 6, 7, 7, 8, 8, 9, 10, 11, 12, 12, 13, 14以下是示例代码:public void mergeA

2017-07-18 18:24:33 1455

原创 最大连续子数组和

输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值,要求时间复杂度为O(n)。例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2, 因此输出为该子数组的和18。public void MaxSubArray(){ int[] a = {1, -2

2017-07-18 18:09:06 359

原创 数对之差的最大值

数组中某数字减去其右边的某数字得到一个数对之差,求所有数对之差的最大值,注意,算法的时间复杂度必须小于O(N2{^2})。 提示:是可以做到O(NlogN)的例如: 数组{ 2,4,1,17,7,5,11,9,3,9,1,18,4,4 }中,数对之差的最大值是16(17-1) 可能我们会想这个问题很简单嘛,就是轮询去找最大值和最小值,然后相减不就是数对之差最大值了吗!其实完全不是,你怎么能确

2017-07-18 16:17:24 1222

转载 【坐在马桶上看算法】算法12:堆——神奇的优先队列(下)

这位朋友写的特别好,忍不住转发 :-) http://ahalei.blog.51cto.com/4767671/1427156接着上一Pa说。就是如何建立这个堆呢。可以从空的堆开始,然后依次往堆中插入每一个元素,直到所有数都被插入(转移到堆中为止)。因为插入第i个元素的所用的时间是O(log i),所以插入所有元素的整体时间复杂度是O(NlogN),代码如下。其实我们还有更快得方

2017-07-17 15:28:28 576

转载 【坐在马桶上看算法】算法11:堆——神奇的优先队列(上)

这位朋友写的特别好,忍不住转发 :-) http://ahalei.blog.51cto.com/4767671/1425314堆是什么?是一种特殊的完全二叉树,就像下面这棵树一样。有没有发现这棵二叉树有一个特点,就是所有父结点都比子结点要小(注意:圆圈里面的数是值,圆圈上面的数是这个结点的编号,此规定仅适用于本节)。符合这样特点的完全二叉树我们称为最小堆。反之,如果所有父结点都比子结点要大,这

2017-07-17 13:38:04 463

转载 【坐在马桶上看算法】算法10:二叉树

这位朋友写的特别好,忍不住转发 :-) http://ahalei.blog.51cto.com/4767671/1414035 二叉树是一种特殊的树。二叉树的特点是每个结点最多有两个儿子,左边的叫做左儿子,右边的叫做右儿子,或者说每个结点最多有两棵子树。更加严格的递归定义是:二叉树要么为空,要么由根结点、左子树和右子树组成,而左子树和右子树分别是一棵二叉树。 下面这棵树就是一棵二叉树。二叉

2017-07-17 11:16:56 428

原创 Dynamic Programming动态规划之收集苹果

动态规划(英语:Dynamic programming,简称DP)是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题[1]和最优子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。 动态规划背后的基本思想非常简单。大致上,若要解一个给定问题,我们需要解其不同部分(即子问题),再合并子问题

2017-07-17 10:49:42 602

原创 是否字符串A包含字符串B的所有字母(区分大小写,算个数,不算顺序)

是否字符串A包含字符串B的所有字母(个数也算),比如: 举例说明 字符串A:aaabcdefgamm 字符串B:mama 比较结果:A包含B,因为A有两个a和两个m(A有4个a,但两个就够了)。 字符串A:aaabcdefga 字符串B:mama 比较结果:A不包含B,因为A没有m。 字符串A:aaabcdefgm 字符串B:ma

2017-07-14 09:36:59 1268

原创 Big O notation大零符合 入门讲解

Big O notation大零符号一般用于描述算法的复杂程度,比如执行的时间或占用内存(磁盘)的空间等,特指最坏时的情形。 Linus Torvalds说过“Talking is cheap, show me the code.”,那我们直接从代码(Python)上来学习Big O吧。O(1) def isFirstElementNull(elements, value): r

2017-07-11 21:04:44 16825

原创 条件概率的逆问题 - 贝叶斯公式

简单来讲,逆问题是指那些需要从结果反推原因的问题,通常,问题X无法被直接观察、测量,此时,我们常会通过其结果Y来反推原因X。通信:根据含有噪声的接受信号Y推测发送信号X语音识别: 根据麦克风识别的音频波形数据Y推测语音信息X文字识别:根据扫描仪读取的图像数据Y推测用户书写的文字X邮件自动过滤: 根据收到的邮件文本Y推测邮件的类型X(是否广告等)我们来看看这个例子在某个角色扮演游戏中,玩家

2016-12-19 13:53:43 4205

原创 条件概率

本文绝大多数内容节选于《程序员的数学2 概率统计》 在实际生活中,许多有价值的变量都能以条件概率这一概念来表述,比如含免费这一单词的邮件很可能是广告,这种○○条件下事件××的概率称为条件概率。

2016-12-15 21:34:22 1866

原创 概率是一种面积

本文绝大多数内容节选于《程序员的数学2 概率统计》 我们来说说抛硬币的事儿,抛一次,则正面和反面的概率都是0.5,抛两次也是一样,见下图: 由于概率是一种面积,因此它不可能为负。此外,由于整体的面积为1,因此概率的最大值是1。我们可以得出结论,抛两次硬币正正的概率是1/4,反反的概率是1/4,而正反的概率则是1/4+1/4=1/2。 也可以这样求:P(正面)=0.5,P(反面)=0.5,所

2016-12-15 21:24:20 1573

原创 联合概率与边缘概率

本文绝大多数内容节选于《程序员的数学2 概率统计》假设有随机变量X于Y,此时,P(X=a, Y=b)用于表示X=a且Y=b的概率。这类包含多个条件且所有条件同时成立的概率称为联合概率。请大家特别注意,联合概率并不是其中某个条件成立的概率,而是所有条件同时成立的概率。与之对应地,P(X=a)或P(Y=b)这类仅于单个随机变量有关的概率称为边缘概率。联合概率与边缘概率大关系如下: P(X=a) = ∑

2016-12-12 20:07:27 12016

原创 有趣的三扇门问题(Monty Hall Problem)

本文很多内容节选于《程序员的数学2 概率统计》在刚开始学概率论的时候,估计都接触过三扇门问题,今天我们也来聊聊,其实这个问题特别有趣,故事是这样的: 美国有一个电视游戏节目叫Let’s Make a Deal,主持人是蒙提霍尔。他身后有三扇门,其中两扇门后面是山羊,一扇门后面是汽车。先让挑战者随意选一扇门,这样还剩两扇,这两扇中肯定有一扇后面是山羊,然后主持人把山羊前的门打开。注意,还有剩两扇门

2016-11-21 23:05:29 4495

原创 Ejabberd Gateway

2008-2-28  Install Components and Transports for Other Protocols(you can search these software from GOOGLE) download Python-2.5.1.tgz download zope.interface-3.3.0.tar.gz download Twisted-2.5.

2009-11-05 16:34:00 779

原创 Cluster ejabberd

2007-12-4 Cluster ejabberdfor example, we want to do a cluster for two machines.1. Ejabberd server namewe must have one name of ejabberd server, Fox example “cluster.com”2. Node namewe nee

2009-11-05 15:49:00 2068 3

原创 Install Ejabberd

2007-8-27   http://www.process-one.net/docs/ejabberd/guide_en.html 1. download the installation file from website. ejabberd-1.1.3 4-linux-x86-installer.bin  2. run the file.  3. select t

2009-11-05 15:36:00 586

Swift for Absolute Beginners.pdf

零基础学习Swift Swift for Absolute Beginners 适合初学者

2019-07-09

SQLServer 数据库比较工具 V0.96

1. 可以比较两个SQLServer的对象结构,比如表、视图、存储过程、函数、触发器等,生成htm结果文件。 2. 针对两数据库的差异生成sql修改脚本。 3. 可以比较表里的数据,生成htm结果文件 -------------- 修改了比较存储过程、视图、函数的准确性。

2009-11-09

SQLServer 数据库比较工具V0.95(附源代码)

1. 可以比较两个SQLServer的对象结构,比如表、视图、存储过程、函数、触发器等,生成htm结果文件。 2. 针对两数据库的差异生成sql修改脚本。 3. 可以比较表里的数据,生成htm结果文件。 -------------- 刚开始学习VC++,菜鸟一个,是为了学习才写的程序,代码很粗糙。

2009-11-05

SQL Server 数据库比较工具

1. 可以比较两个SQLServer的对象结构,比如表、视图、存储过程、函数、触发器等,生成htm结果文件。2. 针对两数据库的差异生成sql修改脚本。 3. 可以比较表里的数据,生成htm结果文件。

2009-10-30

空空如也

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

TA关注的人

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