
算法实现
文章平均质量分 82
冰思雨
这个作者很懒,什么都没留下…
展开
-
模拟进程并发执行的小程序
最近写了一段小程序,模拟三个进程在2个CPU核心下的执行情况。 代码如下: import java.util.*; public class OperationSystem { enum OperationType { // numerical computation NC(false), // input output IO(true); boolean needBlock; Operatio原创 2020-09-18 15:31:13 · 1086 阅读 · 0 评论 -
单模式匹配算法-KMP算法
模式匹配,一般分为单模式匹配和多模式匹配。当然,通常都是指在字符序列中的匹配问题。 单模式匹配,对一个较长的字符序列,调用一次算法只匹配一个模式串。 本文展示的是单模式匹配中的经典算法--KMP算法。 KMP算法是一种高效的模式匹配算法,复杂度可以达到O(m+n),而普通模式匹配算法的复杂度为O(m*n)。 在普通匹配算法中子串与模式串都需要回溯,原创 2012-07-22 01:09:02 · 1553 阅读 · 0 评论 -
多模式匹配算法-AC算法
模式匹配,一般分为单模式匹配和多模式匹配。当然,一般都用于字符序列的匹配当中。 多模式匹配,一般是指在一个较长的字符序列中,有多个模式串要进行匹配。 本文展示的是多模式匹配算法中一款较为经典的算法--AC算法。 AC 算法的核心思想是构造词典的自动机(可以使用trie树来实现), 其算法复杂度是O(m+k+z), m是文本长度,k是所有pattern长度之和,z是字符串中出现pattern的原创 2012-07-22 02:24:46 · 1901 阅读 · 0 评论 -
装饰器模式实现文件IO流的ZIP压缩解压(一)
以前项目中需要下载一个数据库导出的SQL文本文件到客户电脑,但是这个文件体积庞大,有一个多G的样子,客户只有200KB的带宽,传输非常慢。 于是,对服务端的下载程序,做了一个简单的调整,使得客户接收到的数据,是已经压缩后的ZIP文件。 下面介绍代码,里面包含测试用例。该代码只支持一个ZIP压缩包中,只有一个被压缩的文件,暂不支持多个文件的情况。因为当时场景不需要。 p原创 2013-04-03 00:23:08 · 834 阅读 · 0 评论 -
装饰器模式实现文件IO流的ZIP压缩解压(二)
接着上篇文章,上一篇文章讲的是将一个文本文件的数据输出流,转换成ZIP的压缩输出流。 这篇文章,讲述的是,怎样将上一篇文章中生成的压缩文件,进行解压的。也就是说,读取一个ZIP压缩文件,将里面一个被压缩的文件提取出来。 其实,根据压缩、解压,输入、输出 我们可以写出四个装饰器类,分别完成IO流的输入输出、压缩解压功能。暂时先写两个,后面两个有时间再补。 package原创 2013-04-03 00:40:49 · 866 阅读 · 0 评论