零零散散学算法系列
文章平均质量分 91
爱好算法,仅此而已!
SuperFC
算法狂热爱好者,数据挖掘门外汉,从事存储行业!
展开
-
零零散散学算法之再叙字符串匹配
零零散散学算法之再叙字符串匹配 正文 字符串匹配问题这是个老话题了,而我们也热衷于学习和探讨这个问题,并且我们也经常会用到它。比如说,我们用vim打开一个文本文件,要在这个文件中查找某一个字符串时,我们只需在底行模式下输入/String即可;再比如,在linux终端中,我们要把当前目录下所有的c文件打印出来,那么这时候我们就会利用正则表达式来进行匹配操作(所有的c文件原创 2013-05-13 13:25:13 · 8258 阅读 · 16 评论 -
零零散散学算法之浅析内存管理的方式
解析内存管理的方式正文 说到内存分配,我们立刻就会想到malloc()、calloc()等申请内存的接口,说到内存分配的算法,我们会想到Buddy和Slab等分配算法。那么你有没有思考过,申请的内存是如何管理的呢?管理的方式都有哪些?这就是本文将要讨论的。 本文将介绍两种内存管理的方法:链表法和比特位法。第零节原创 2012-12-15 14:10:59 · 5080 阅读 · 11 评论 -
零零散散学算法之详解RMQ & LCA
深入理解RMQ & LCA 正文 第一节 RMQ、LCA概述 LCA:Lowest Common Ancestor,译为最近公共祖先。其解释就是说:在有根树中,找出树中任意两个节点最近的公共祖先,或者说找到任意两个节点离树根最远的公共祖先。 RMQ:Range Minimum Query,译为区间最小值查询。其解释就是说:对于含有N个原创 2012-10-23 23:49:20 · 3061 阅读 · 0 评论 -
零零散散学算法之详解数据压缩算法(下)
深入解析数据压缩算法 前序 开始本文之前,先回顾一下上篇。上篇讲解了几种数据压缩算法中的两种:Huffman压缩算法和RLE压缩算法。 详解数据压缩算法(上):http://blog.csdn.net/fengchaokobe/article/details/7934865 正文 本文将详解数据压缩算法的后两种算原创 2012-09-26 23:07:00 · 6068 阅读 · 2 评论 -
零零散散学算法之详解数据压缩算法(上)
深入解析数据压缩算法正文 所谓数据压缩,是指在不丢失信息的前提下,缩减数据量以减少存储空间,提高传输、存储和处理效率的一种技术方法。或者是按照一定的算法对数据进行重新组织,减少数据的冗余和存储的空间。 能实现数据压缩的本质原因就是数据的冗余性。 本系列将分为上下两个部分,介绍四种数据压缩算法,分别为Huffman压缩原创 2012-09-12 22:45:38 · 17585 阅读 · 27 评论 -
算法的重要性
算法的重要性第一节 绪论 算法是干什么用的?我们为什么要学习算法?算法重不重要呢?在这引用一下《算法导论》里面的回答:所谓算法就是一个明确的计算过程,它取一个或者一组值作为输入,并产生一个或者一组值作为输出。换句话说,算法就是一个给好路线图、界限明确的任务。因此,一坨计算斐波那契堆的代码就是一个特定算法的实现。甚至在某种意义上可以说,两个数的相加也是一个算法,不过它很简翻译 2012-08-18 20:46:44 · 8162 阅读 · 8 评论 -
最大流问题:增广路径算法的比较
最大流问题:增广路径算法的比较 这篇文章我们将重温最大流问题,实现一些最有名的增广路径算法的实际分析的目标。我们将讨论的这几种算法的复杂度在O(n*m*m)到O(n*mlogU)之间,并且从讨论的结果中得到在实践中最有效的一种。正如我们所想的,理论上的复杂度并不能揭示该算法在实际中的价值。 这篇文章所针对的是熟悉网络流理论的基本知识的读者。如果你对网络流理论翻译 2012-05-25 22:23:03 · 29349 阅读 · 6 评论 -
零零散散学算法之详解二叉查找树
深入解析二叉查找树正文 所谓二叉查找树,实质上是按二叉树的结构来组织的,这样的树可以用链表结构来表示,其中每一个节点都是一个对象。 二叉查找树中元素(也可称为关键字)的存储方式总是满足以下几个性质: 1.若二叉树的左子树不为空,则左子树上所有节点的值均不大于其根节点的值; 2.若二叉树的右子原创 2012-05-11 20:56:18 · 2740 阅读 · 0 评论 -
零零散散学算法之详解最小生成树
深入解析最小生成树正文 所谓最小生成树,就是在一个具有N个顶点的带权连通图G中,如果存在某个子图G',其包含了图G中的所有顶点和一部分边,且不形成回路,并且子图G'的各边权值之和最小,则称G'为图G的最小生成树。 由定义我们可得知最小生成树的三个性质: •最小生成树不能有回路。 •最小生成树可能是一个,原创 2012-05-01 00:20:43 · 13908 阅读 · 32 评论 -
中位数之第K小的线性选择算法
1973年,Blum、Floyd等几位大仙合并一体,写了一篇题为 “Time bounds for selection” 的章,给出了一种在数组中选出第k小元素的算法,俗称"中位数之中位数算法"。该算法从理论上保证了最坏情形下的线性时间复杂度(O(n))。而一个简单的排序算法像快速排序的时间复杂度是O(nlogn),利用类似于快速排序的做法是:首先对该无序数组进行排序(O(nlogn)),然后进行翻译 2011-09-18 01:47:03 · 4999 阅读 · 4 评论 -
零零散散学算法之找出数组中重复的数---总结篇
找出数组中重复的数前序 最近一直在看v_JULY_v的专栏,从中学到了很多关于算法方面的知识,也受到了很大的启发。我相信喜欢算法的朋友,看过他的博文之后也会有这种想法。前段时间参加了一些面试,从他的专栏里学到的算法给予了我不小的帮助,这让我在面试的时候轻松了不少。他的博文我将会继续关注和学习。 好了,我们言归正传。关于找出数组中重复数原创 2012-03-17 20:01:43 · 5425 阅读 · 3 评论 -
零零散散学算法之多串匹配
多字符串匹配第一节 提出问题 所谓多串匹配,就是给定一些模式串(子串),在一段正文(主串)中找到第一个出现的任意一个模式串的位置。具体来说就是:给定m个长度分别为L1、L2......Lm的模式串数组A[1..L1]、A[1..L2]......A[1..Ln],假设主串为一个长为n的数组T[1..n],那么在主串中的某一位置X,对于满足匹配的任意串Y,会满足A[1.原创 2012-03-29 23:08:07 · 3785 阅读 · 0 评论 -
零零散散学算法之详解几种最短路径
深入解析最短路径算法正文 第一节 问题的提出及解决方法 所谓最短路径问题,可以说有两种情况来描述。 描述一:在图论中,指的是寻找图中两个节点之间的最短距离。如下图 描述二:在现实生活中,指的是找到从一个地方到另一个地方的最近距离。如下图 上述两种情况的本质是一样的,即求一个点到另一个点的最短路径。好了原创 2012-04-19 20:54:50 · 13337 阅读 · 4 评论 -
零零散散学算法之详解几种数据存储结构
影响空间规模的几种数据存储结构正文 所谓数据存储结构,就是数据的元素与元素之间在计算机中的一种表示,它的目的是为了解决空间规模问题,或者是通过空间规模问题从而间接地解决时间规模问题。我们知道,随着输入的数据量越来越大,在有限的内存里,不能把这些数据完全的存下来,这就对数据存储结构和设计存储的算法提出了更高的要求。 本文将介绍几种存储结构,分原创 2012-04-04 22:06:17 · 9201 阅读 · 21 评论