- 博客(20)
- 问答 (1)
- 收藏
- 关注
原创 【总览】我的技术博客
我的博客共有六个栏目:(一)数字逻辑与计算机原理 -- 计算机原理性知识总结(二)JAVA和J2EE-- JAVA语言细节和企业级框架应用实践,spring, hibernate等。(三)数据结构 -- 数据结构分析和原码剖析(四)基础算法 -- 算法介绍和实现(五)编程习题 -- 各类型编程习题,技术面试题等(六)机器学习 -- 线性回归,逻辑回归,聚类算法,SVM,统计学习等理论和实践
2015-07-07 22:19:50 309
原创 【源代码】java.util.Stack & Queue
这里给出java.util.Stack和java.util.Queue的源代码。代码来源http://developer.classpath.org/
2015-07-24 16:34:32 513
原创 【算法】聊聊排序
程序开发过程中常常遇到对于一堆无序的数据进行排序的需求。对于不同的数据类型和存储位置,产生了不同的排序算法。掌握它们并应用在实际开发中是每一个程序员都需要具备的能力。这篇文章将聊聊一些基本排序算法和它们的一些应用。如下是本文内容目录:一、最简单的排序算法,时间复杂度O(n^2)1. 选择排序2. 插入排序3. 冒泡排序二、更快的排序算法们,时间复杂度O(nlogn)
2015-07-14 22:25:17 745
原创 【中文分词】亲手开发一款中文分词器——原理
前文已经谈到几种分词方法的手段和困难,本文将从最基本原理开始,一步一步分析我自己的分词器是如何开发的。从最初出发点开始,我们需要确定那些字的组合是词语。每两个字能否组合成词语,其实取决于两个字同时以相同顺序出现在文章中的次数有关,次数越高,代表他们越有可能组合成词。假设一个字A出现在一篇文章中的概率为P(A),另一个字B出现在文中的概率为P(B),那么AB同时出现在文章中的概率为P(A
2015-07-10 13:38:46 3060 2
原创 【编程习题★★★☆☆】计算岛屿的数量
题目:用一个N*N的矩阵来表示一张地图,其中0位海洋,1位陆地。被0保围起来的所有1组成岛屿。试计算矩阵中岛屿的数量。
2015-07-09 11:43:07 2329
原创 【中文分词】亲手开发一款中文分词器——源代码
这里提供我开发的中文分词器源代码。代码分为三个部分:(一)状态矩阵元素对象GNode。 动态规划中,状态矩阵的元素需要记录当前最大概率和前一个最优匹配状态,这个矩阵是一个二维数组,每一个元素就是一个GNode对象。(二)统计学习使用的嵌套哈希表THash。 用于统计学习时记录结果的HashMap,这个哈希表有三层嵌套,对于收入数据有一些必要操作,为了简单起见,我将这个哈希表进行了封装
2015-07-09 10:01:23 2466
翻译 隐马尔科夫模型详解(一)
原文《A Revealing Introduction to Hidden Markov Models》首先声明,introduction原本介绍之意,前边又加一个revealing修饰,很难想到一个对应的中文词语来解释它,所以就姑且参照《Introduction to Algorithms》的翻译,叫做导论。本文作者:Mark Stamp, 圣荷西州立大学计算机学院副教授。
2015-07-08 17:44:59 858
原创 【英文分词】Stemming Segmentation,基于词干分词
英文分词主要是将各种时态形式的单词映射会同一种形式便于计算机理解。本文将列举一种基于词干分词的算法,这种算法建立在对英文构词法的充分了解上,所以代码中对各种形式的词汇的构词进行了拆解。英文分词的目标是将不同形式映射到同一形式,而不是原始形式。
2015-07-08 16:48:25 1599
原创 【中文分词】亲手开发一款中文分词器--前言
所谓分词,就是将一个完整的句子按正确的意思将每一个词语提取出来的操作。分词是自然语言处理的第一个关卡,是让计算机处理人类语言的基础。但是计算机是无法识别人类语言中词汇这一概念的,更何况如何去识别理解词语了。所以如何通过有效的手段来进行分词是一个重要节点性问题。
2015-07-08 15:47:35 985
原创 【源代码】java.util.ArrayList
与LinkedList类似,ArrayList是另一个线性表容器。不过其内部基于数组的扩容实现。本文罗列其源代码并分析其原理。
2015-07-08 11:01:54 1197
原创 【源代码】java.util.LinkedList
java.util是一个极为重要的容器类库,里边提供了诸多经典的数据结构的实现,可以应对工业开发中大多数常见需求。本文将针对java.util.LinkedList的源代码进行分析,讲解其功能的实现细节。
2015-07-07 20:39:55 739
原创 【数据结构】堆栈和队列
堆栈和队列是两种极为常见的数据结构。这两种数据结构多少有点相对立的意思,一个是先进后出,一个是先进先出。概念上虽然很简单,很好理解,但其实其中有非常大的学问。在消息机制中这两种数据结构也有极大的应用,所以是两种应用很广的数据结构。堆栈堆栈的有进栈和出栈两种基本操作。进栈过程是数据由栈顶推入栈,由栈底开始逐一放置直到数据装满整个栈。出栈过程是数据由处于最上层的数据推出栈,直到栈底数据
2015-07-02 21:39:11 722
原创 【数据结构】链表
链表是数据结构课程的第一讲,也是最为简单的数据结构。其基本结构是一个包含有值和另一个节点地址或索引的对象。逐个对象因为上一级(前驱)的索引而一一相连,形成了一个链状的线性结构。链表可以灵活地增加或者减少节点的个数,当时需要增加时,临时向系统申请一块内存,并建立索引。因此与数组不同,链表的节点可以分布于内存中的任何地方,它们并不是一个有序相邻放置的结构尽管在程序应用上,我们将其视为一个线性表。因为节点放置的分散,所以在访问时,指针势必会高频率跳转,这也使得访问的耗时在硬件上层面上是大于数组的访问的。
2015-06-30 22:32:55 380
原创 【计算机原理】基本数据类型
计算机中的信息由电路的高低电平来表示,因而计算机中的信息表示都是二进制的。所以我们将身边常用的数据一律转化为0,1代码放入计算机中进行处理。计算机总线位宽决定了计算机一次传输中能表示的二进制数最大位数。就目前而言,计算机以64位为主流,因而我们电脑处理器一次读取数据的位数最大为64位二进制数。比如十进制的1,在计算机中就表示为63个0加一个1.在计算机中为了定义数据的大小,一位二进制数称之为字
2015-06-30 21:04:33 3605
原创 【编程习题★★★☆☆】等式变换求解
原题:输入一个正整数X,在下面的等式左边的数字之间添加+号或者-号,使得等式成立。 1 2 3 4 5 6 7 8 9 = X 比如: 12-34+5-67+89 = 5 1+23+4-5+6-7-8-9 = 5 请编写程序,统计满足输入整数的所有整数个数。 输入: 正整数,等式右边的数字 输出: 使该等式成立的个数 样例输入:5 样例输出:21
2015-06-19 16:53:34 760
原创 【J2EE】快速搭建 Spring MVC 开发框架(一)
Spring Framework是Java三大框架之一,适用于使用MVC设计模式的项目开发。如何使用Spring框架来进行开发,本文讲站在一个入门要求上谈论它的搭建过程。
2015-04-11 09:47:06 2406
空空如也
关于在CDN上部署分布式系统的疑问
2015-07-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人