- 博客(26)
- 资源 (7)
- 收藏
- 关注

原创 零零散散学算法之详解几种数据存储结构
影响空间规模的几种数据存储结构正文 所谓数据存储结构,就是数据的元素与元素之间在计算机中的一种表示,它的目的是为了解决空间规模问题,或者是通过空间规模问题从而间接地解决时间规模问题。我们知道,随着输入的数据量越来越大,在有限的内存里,不能把这些数据完全的存下来,这就对数据存储结构和设计存储的算法提出了更高的要求。 本文将介绍几种存储结构,分
2012-04-04 22:06:17
9242
12
原创 零零散散学算法之再叙字符串匹配
零零散散学算法之再叙字符串匹配 正文 字符串匹配问题这是个老话题了,而我们也热衷于学习和探讨这个问题,并且我们也经常会用到它。比如说,我们用vim打开一个文本文件,要在这个文件中查找某一个字符串时,我们只需在底行模式下输入/String即可;再比如,在linux终端中,我们要把当前目录下所有的c文件打印出来,那么这时候我们就会利用正则表达式来进行匹配操作(所有的c文件
2013-05-13 13:25:13
8296
7
原创 零零散散学算法系列之目录(持续更新)
零零散散学算法系列第一篇:零零散散学算法之详解几种数据存储结构第二篇:零零散散学算法之详解数据压缩算法(上)第三篇:零零散散学算法之详解数据压缩算法(下)第四篇:零零散散学算法之详解最小生成树第五篇:零零散散学算法之详解几种最短路径第六篇:零零散散学算法之详解二叉查找树第七篇:零零散散学算法之详解RCM & L
2013-01-25 19:38:23
2508
原创 零零散散学算法之浅析内存管理的方式
解析内存管理的方式正文 说到内存分配,我们立刻就会想到malloc()、calloc()等申请内存的接口,说到内存分配的算法,我们会想到Buddy和Slab等分配算法。那么你有没有思考过,申请的内存是如何管理的呢?管理的方式都有哪些?这就是本文将要讨论的。 本文将介绍两种内存管理的方法:链表法和比特位法。第零节
2012-12-15 14:10:59
5121
1
原创 零零散散学算法之详解RMQ & LCA
深入理解RMQ & LCA 正文 第一节 RMQ、LCA概述 LCA:Lowest Common Ancestor,译为最近公共祖先。其解释就是说:在有根树中,找出树中任意两个节点最近的公共祖先,或者说找到任意两个节点离树根最远的公共祖先。 RMQ:Range Minimum Query,译为区间最小值查询。其解释就是说:对于含有N个
2012-10-23 23:49:20
3115
原创 零零散散学算法之详解数据压缩算法(下)
深入解析数据压缩算法 前序 开始本文之前,先回顾一下上篇。上篇讲解了几种数据压缩算法中的两种:Huffman压缩算法和RLE压缩算法。 详解数据压缩算法(上):http://blog.youkuaiyun.com/fengchaokobe/article/details/7934865 正文 本文将详解数据压缩算法的后两种算
2012-09-26 23:07:00
6128
原创 零零散散学算法之详解数据压缩算法(上)
深入解析数据压缩算法正文 所谓数据压缩,是指在不丢失信息的前提下,缩减数据量以减少存储空间,提高传输、存储和处理效率的一种技术方法。或者是按照一定的算法对数据进行重新组织,减少数据的冗余和存储的空间。 能实现数据压缩的本质原因就是数据的冗余性。 本系列将分为上下两个部分,介绍四种数据压缩算法,分别为Huffman压缩
2012-09-12 22:45:38
17676
13
翻译 算法的重要性
算法的重要性第一节 绪论 算法是干什么用的?我们为什么要学习算法?算法重不重要呢?在这引用一下《算法导论》里面的回答:所谓算法就是一个明确的计算过程,它取一个或者一组值作为输入,并产生一个或者一组值作为输出。换句话说,算法就是一个给好路线图、界限明确的任务。因此,一坨计算斐波那契堆的代码就是一个特定算法的实现。甚至在某种意义上可以说,两个数的相加也是一个算法,不过它很简
2012-08-18 20:46:44
8379
5
原创 初探FC:Fibre Channel
FC:Fiber Channel FC:全称Fiber Channel,是一种高速网络技术,现在主要用于存储网络。 根据OSI模型的分层,类似的我们可将FC分为五层,如下: FC0– 物理层:包括电缆、编码和解码的标准等。 FC1– 数据链路层:信号的编码、解码。
2012-07-28 00:55:06
4281
翻译 最大流问题:增广路径算法的比较
最大流问题:增广路径算法的比较 这篇文章我们将重温最大流问题,实现一些最有名的增广路径算法的实际分析的目标。我们将讨论的这几种算法的复杂度在O(n*m*m)到O(n*mlogU)之间,并且从讨论的结果中得到在实践中最有效的一种。正如我们所想的,理论上的复杂度并不能揭示该算法在实际中的价值。 这篇文章所针对的是熟悉网络流理论的基本知识的读者。如果你对网络流理论
2012-05-25 22:23:03
29531
5
原创 零零散散学算法之详解二叉查找树
深入解析二叉查找树正文 所谓二叉查找树,实质上是按二叉树的结构来组织的,这样的树可以用链表结构来表示,其中每一个节点都是一个对象。 二叉查找树中元素(也可称为关键字)的存储方式总是满足以下几个性质: 1.若二叉树的左子树不为空,则左子树上所有节点的值均不大于其根节点的值; 2.若二叉树的右子
2012-05-11 20:56:18
2765
原创 大话编译原理---上篇
大话编译原理---上篇前序 记得第一次上编译原理这门课时,老师曾慷慨激昂的说:“学好编译原理能让你们享用一生,你们要好好学啊”。不过学完编译原理也有一段时间了,平时也找一些编译原理方面的资料学习,却始终感受不到学习编译原理的效用。究其原因还是自己学的太单薄了,毕竟像这种“内功”可不是一天两天就能练出来的!只是感觉这门课挺有意思,权当一门兴趣来学了。正文
2012-05-08 21:16:00
4262
原创 零零散散学算法之详解最小生成树
深入解析最小生成树正文 所谓最小生成树,就是在一个具有N个顶点的带权连通图G中,如果存在某个子图G',其包含了图G中的所有顶点和一部分边,且不形成回路,并且子图G'的各边权值之和最小,则称G'为图G的最小生成树。 由定义我们可得知最小生成树的三个性质: •最小生成树不能有回路。 •最小生成树可能是一个,
2012-05-01 00:20:43
14064
20
原创 初探磁盘阵列
初识磁盘阵列第一节 什么是RAID? RAID是Redundant Array of Independent Disks的缩写,翻译过来意思是:独立磁盘冗余阵列,简称磁盘阵列。其基本思想就是把多个相对便宜、容量较小、稳定性较高的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、容量巨大的硬盘。第二节 磁盘阵列的功能 一般来说,磁盘阵列有
2012-05-01 00:20:16
2524
1
原创 趣味二分法
趣味游戏:猜数字前序:历史渊源 不晓得你是否玩过猜数字的游戏?如果玩过,那么你猜对过几回呢?你是怎样猜对的?有什么诀窍吗? 记得当年头几次玩这个游戏的时候,那就是一个胡猜,加上老天也不助我,一次都没有蒙对,想起来很是悲催。所以当时就有一个念头:自己买彩票肯定中不了!后来在开始学习编程时,有一次课间休息的时候老师让大家来做个游戏,说是猜数字。我当时就有点不
2012-04-21 18:22:18
2603
1
原创 最大流问题:增广路径算法的比较之序
零零散散学算法系列最大流问题之序 最大流问题之增光路径算法的比较:http://blog.youkuaiyun.com/fengchaokobe/article/details/7584781参考文献:[1] Ravindra K. Ahuja, Thomas L. Magnanti, and James B. Orlin. Network Flows: Theory, Algo
2012-04-19 20:55:24
4429
原创 零零散散学算法之详解几种最短路径
深入解析最短路径算法正文 第一节 问题的提出及解决方法 所谓最短路径问题,可以说有两种情况来描述。 描述一:在图论中,指的是寻找图中两个节点之间的最短距离。如下图 描述二:在现实生活中,指的是找到从一个地方到另一个地方的最近距离。如下图 上述两种情况的本质是一样的,即求一个点到另一个点的最短路径。好了
2012-04-19 20:54:50
13478
原创 由n阶幻方问题引发的思考
由n阶幻方问题想到的前序 最近在学习一些经典的算法,搞得头昏脑涨,就想换换脑子。在家里的旧书堆里面乱翻,无意中将一本具有十多年历史的小学数学奥林匹克竞赛的书发掘了出来,能放到现在挺不容易的,就拿起来随便翻翻。看了看目录,一个个熟悉的问题又一次的展现在了我的面前,看着看着就翻到了n阶幻方这块(其实那时候我们不这么叫)。记得当时学这个问题的时候就感觉特别有意思,现在看看
2012-04-08 17:19:15
7725
12
原创 零零散散学算法之多串匹配
多字符串匹配第一节 提出问题 所谓多串匹配,就是给定一些模式串(子串),在一段正文(主串)中找到第一个出现的任意一个模式串的位置。具体来说就是:给定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
3836
原创 零零散散学算法之找出数组中重复的数---总结篇
找出数组中重复的数前序 最近一直在看v_JULY_v的专栏,从中学到了很多关于算法方面的知识,也受到了很大的启发。我相信喜欢算法的朋友,看过他的博文之后也会有这种想法。前段时间参加了一些面试,从他的专栏里学到的算法给予了我不小的帮助,这让我在面试的时候轻松了不少。他的博文我将会继续关注和学习。 好了,我们言归正传。关于找出数组中重复数
2012-03-17 20:01:43
5463
3
原创 初探虚拟化
虚拟化是一个非常宽泛的概念。随着计算机技术的发展,这个概念所涵盖的范围也在随之改变。因此想要对“虚拟化”给出一个准确而又清晰地定义绝非易事。目前业界对虚拟化已有多重定义: “虚拟化是表示计算机资源的抽象方法,通过虚拟接可以用与访问抽象前资源一致的方法访问抽象后的资 源,这种资源的抽象方法并不受现有资源的架设方式、地理位置或底层资源的物理配置的限制。” —
2011-12-15 11:52:43
1395
原创 重温经典之赫夫曼(Huffman)编码
先看看赫夫曼树假设有n个权值{w1,w2,…,wn},构造一个有n个叶子结点的二叉树,每个叶子结点权值为wi,则其中带权路径长度WPL最小的二叉树称作赫夫曼树或最优二叉树。 赫夫曼树的构造,赫夫曼最早给出了带有一般规律的算法,俗称赫夫曼算法。如下:(1)根据给定的n个权值{w1,w2,…,wn}构造n棵二叉树的集合F={T1,T2,…,Tn},其中Ti中只有一个权值为wi的根结点,
2011-11-14 17:25:52
5173
9
原创 重温经典之简单的加密
开头语 “两个光棍放在一起就是一双筷子”,很经典的一句话!此时此刻,不管各位棍友都是什么样的心情,还是祝各位棍友节日快乐!闲言少叙,书接正文。本文所探讨的加密应该属于最简单加密方法之一吧!具体加密过程如描述:比如要加密一个文本文件,我会将一次读出文本中的每个字符,然后通过已经规定的密匙(key)加密,然后将其写进另一个文本文件中,一直如此,直至源文本中的内容全部被加密,并
2011-11-11 13:01:29
1498
原创 自己动手写printf
有这样一个简单的问题:求从1加到100的和S(S= 1+2+3+...+99+100),并打印出S。这道题应该是我们刚刚开始学编程语言时老师让我们做的题目吧一个for或者while循环S就搞定了,接下来就是输出S ,我相信对于当时的你百分之百会用printf(),即使现在遇到类似的问题,在大多情况下你也会用printf的。你有没有想过,我们为什么就要用它呢?printf函数是怎样写的?你是否仔细的
2011-10-05 16:20:37
1917
原创 中位数之第K小的线性选择算法(续)
前一段时间翻译了中位数之第K小的线性选择算法,由于翻译水平有限,感觉对上文不是很满意。不过中位数算法的大致意思我想已经在上文中说的比较清楚了,在这我就不多说了。本文的主要目的是对于算法的实现。 最近抽了些时间把该算法做了,基本是按照上文的思路走的。突然心情激动了一
2011-09-23 10:53:28
1907
翻译 中位数之第K小的线性选择算法
1973年,Blum、Floyd等几位大仙合并一体,写了一篇题为 “Time bounds for selection” 的章,给出了一种在数组中选出第k小元素的算法,俗称"中位数之中位数算法"。该算法从理论上保证了最坏情形下的线性时间复杂度(O(n))。而一个简单的排序算法像快速排序的时间复杂度是O(nlogn),利用类似于快速排序的做法是:首先对该无序数组进行排序(O(nlogn)),然后进行
2011-09-18 01:47:03
5032
3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人