自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 实现了私聊和群聊功能的聊天工具

在前面简单的C/S聊天室的博客中,我们已经提到了,采用的是多线程的方法。服务器端主线程负责不断的侦听端口,子线程负责接收和发送消息。客户端主线程需要接收键盘消息,将其发送到服务器端,子线程需要接收服务器端发过来的消息。在这个简易的C/S聊天室的实现中,仅仅实现了群聊的功能,没有实现私聊。那么,本文就讲实现私聊和群聊。首先我们想到的是,消息发过来,我怎么知道是公聊消息还是私聊消息呢。所以,这里需

2014-07-19 22:45:58 3476

原创 简单的C/S聊天室

C/S聊天室分为服务器端和客户端,均需要采用多线程来实现。服务器端主线程需要不断地监听端口,一旦有客户端的请求时,产生相应的Socket,将其加入到队列中并启动子线程,子线程负责接收客户端消息(使用Socket的getInputStream()函数来处理),再将消息发送到所有的客户端(使用Socket的getOutputStream()函数)。客户端主线程负责获取键盘输入(相当于侦听键盘输

2014-07-09 22:54:12 2532

原创 二叉查找树(二叉排序树、有序二叉树)算法分析及实现

二叉查找树一般采用二叉链表作为其存储结构,我们这次也采用这样的实现。二叉查找树一般有查找、插入和删除等操作,其中查找是基础,没有查找,插入和删除则无从谈起;而删除算是难点,需处理四种不同的情况,分别是:无左右孩子,(采取直接删除,须处理其父节点指针)只有左孩子,(采取其父节点指针指向其左孩子)只有右孩子、(采取其父节点指针指向其右孩子)左右孩子都存在,(采取以直接前驱或直接后继代替

2014-05-30 17:25:21 3023 2

原创 快速排序算法及时间复杂度分析(原地in-place分区版本)

快速排序算法一般来说是采用递归来实现,其zuiguan

2014-05-28 21:54:58 2582

原创 推荐系统:寻找相近的用户——皮尔逊相关度评价

皮尔逊相关度,其实就是我们数学里面说的相关系数。为什么我们这里又要用这个皮尔逊相关度来衡量用户之间的相近程度呢?那是因为可能存在这样的情况,某人和我的爱好都是一样的,但是他在打分的时候总是相对于我偏高或者是偏低,如果按照先前的欧几里德来评价,或许给出的结论是他与我的爱好并不相同,所以又提出了一种皮尔逊相关度评价标准,可以在这种情况下给出比较好的结论。相关系数大家应该比较了解,代码如下:from

2013-12-18 21:21:36 1106

原创 推荐系统:寻找相近用户——欧几里德距离评价

所谓欧几里德距离,通俗的来讲就是两个物体之间各个维度的差的平方和,然后再开方。这样,我们可以通过两个用户对若干本书的评价分数,我们可以求得两个用户的相近程度。具体算法思路是,先求得两个用户都评价的书籍,然后求同一本书的评分差的平方,并把各差的平方相加,其实可以同时完成,即在求共同评价的书籍的时候就可以求差的平方和。为了比较容易衡量,也是为了和其他评价标准相同,我们规定0代表两用户无共同爱好,1代表

2013-12-18 21:11:44 889

原创 堆排序算法及时间复杂度分析

堆其实通常是通过一维数组来实现的,在数组起始下标为0的情况下,父节点i的左右子节点分别为2*i+1和2*i+2,子节点i的父节点为(i-1)/2。对堆的操作主要有建堆、调整堆、堆排序、插入和删除堆中元素。其中调整堆是核心。下面将重点介绍两种调整堆的方法。向下调整堆(shift函数):向下调整堆即为从某一节点开始,若其存在子节点,则与其子节点中最大的相比,若比其最大子节点小,则先保存其值,再

2013-11-28 22:53:07 2273

原创 prim最小生成树算法

算法描述:设定两个集合U和V,刚开始时U为空,V为全体顶点集合。在V中任取一点加入到U中,记录该点到其他V中顶点的距离,从中选取最小的一边及其在V中对应的顶点。将该顶点加入到U中,更新U中顶点到V中各个顶点的距离的最小值,再次选取已记录的U到V中最小的边,重复以上步骤,直到V为空为止。从上面的描述中我们可以看出,更新U中顶点到V中各个顶点的距离的最小值的时间复杂度为o(n),又存在一个循环的过

2013-11-28 11:40:59 712

原创 利用内存数据库和布隆过滤器写的网络爬虫

内存数据库用来保存待访问url,布隆过滤器用来记录已访问的url。先前我们待访问url是存放在内存中,已访问的url是利用HashSet实现的。布隆过滤器package hashfilter;import java.util.BitSet;import bdb.CrawlUrl;public class SimpleBloomFilter { private static fin

2013-11-27 20:16:15 2116

原创 网络爬虫

/*这里我的网络爬虫大体实现了网络爬虫的基本功能,采取的是宽度优先搜索,宽度优先搜索的好处是可以较快的访问到重要网页,因为重要网页往往离种子网页较近,且利于多爬虫合作。基本的原理是将网页先保存下来,将该Url放入已访问链接,再提取网页中的超链接,放入未访问队列。内容或多或少,肯定有不足之处,恳请大家不吝赐教。*//*MyClawler.java*/import java.util.Set;

2013-11-16 15:00:25 834

原创 建立一个简单索引的例子

/*IndexFiles.java*/import java.io.File;import java.io.IOException;import java.util.Date;import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.index.CorruptIndexExc

2013-11-01 13:56:10 811

原创 提取HTML中的文本信息

import java.io.*;import org.htmlparser.filters.*;import org.htmlparser.*;import org.htmlparser.nodes.*;import org.htmlparser.util.*;import org.htmlparser.visitors.*;public class showText{ pu

2013-10-22 22:41:22 785

原创 提取HTML中的链接和锚文本

说是原创,其实也参考了老师的PDF文档和java书籍,刚开始学,权且写写,献丑啦,O(∩_∩)O哈哈~/*ReadLink.java*/import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;

2013-10-22 22:08:34 1300

空空如也

空空如也

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

TA关注的人

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