《算法之道》精华 算法设计部分
本书作者绉恒明,作者另有一本书《数据结构之弦》,以及《操作系统之哲学原理》都是很好的书这本书可以算得上是深入浅出,文笔很好,作者添加了很多自己的思考本文仅包括算法设计部分,算法分析略去,并没有严格按照章节顺序来记录
附录 算法随想
有人喜欢遍历,希望踏遍千山万水,人生丰富多彩;有人一生贪婪,眼界不宽,及时行乐;有人注定穷搜,辛辛苦苦,收获有限;有人善用...
分类:
其他好文 时间:
2014-08-09 11:37:07
阅读次数:
280
题目分析:
给你N个人的队列,每个人都有想站的位置,要你从前往后的给他们排序,输出最后的结果。注意,后面的人会覆盖前面的。就是是原本在该位置上的人往后移动一个位置。
算法分析:
我们可以把总人数当作区间的大小,然后结果就是把区间的每一个位置都放上人,就是答案了。
而从题目中我们可以知道,后面的人是不受前面的人的影响的。所以,我们可以倒这来模拟过程。
如何模拟呢?我们可以想到...
分类:
其他好文 时间:
2014-08-08 12:49:05
阅读次数:
164
今天简单学习了下链表,待后续,会附上一些简单经典的题目的解析作为学习的巩固首先要了解链表,链表其实就是由一个个结点构成的,然后每一个结点含有一个数据域和一个指针域,数据域用来存放数据,而指针域则用来存放下一个结点的地址。1、先给出结点的定义。typedef struct Node *PtrToNod...
分类:
其他好文 时间:
2014-08-08 12:34:55
阅读次数:
212
一、对算法分析方法的最简单的理解和使用方法1、首先大家可能一般会被那些数学的概念搞晕,其实简单理解下来,就是假设任何语句执行的效率都是一样的,所以设定每一个语句的执行时间都是一个时间单位,那么只要计算这个程序到底执行了多少语句,就可以算出其时间复杂度。2、其次就是我们要明白,我们是个估算,所以可以进...
分类:
其他好文 时间:
2014-08-08 01:41:35
阅读次数:
336
RMQ算法,是一个快速求区间最值的离线算法,预处理时间复杂度O(n*log(n)),查询O(1),所以是一个很快速的算法,当然这个问题用线段树同样能够解决。
问题:给出n个数ai,让你快速查询某个区间的的最值。
算法分类:DP+位运算
算法分析:这个算法就是基于DP和位运算符,我们用dp【i】【j】表示从第 i 位开始,到第 i + 2^j 位的最大值或者最小值。
...
分类:
其他好文 时间:
2014-08-06 18:58:52
阅读次数:
222
题目链接:Click
Here~
题意分析:
给一根长为L的木棒,然后给出要切的N处地方。要你用最少的花费完成这项任务。而花费是如何计算的呢?就是用当前木棒的长度是多少,那么花费就是多少。
算法分析:
运用记忆化的过程可以缩减很多时间,本题的实质是区间DP。原题是经典的石子合并问题。如果,感觉不好理解可以想想图论中的Flody模型。
状态转移方程:dp[i][j...
分类:
其他好文 时间:
2014-08-05 14:18:29
阅读次数:
191
~~~~
由题意可知,因为左边是按1~n的顺序递增排列,要想得到不相交组合,左边后面的一定与相应右边后面的相连,如此一来,
就可以发现其实是一道最长上升子序列的题目,要注意的是N
题目链接:http://poj.org/problem?id=1631
~~~~
nlogn的算法在这里补充一下。
最长不下降子序列的O(nlogn)算法分析如下:
设 A[t]表示序...
分类:
其他好文 时间:
2014-08-03 23:26:56
阅读次数:
364
做算法分析的时候经常用到各种时间复杂度如O(n), O(logn), O(nlogn), O(n^2), ... 它们之间到底有多大的差别呢?下面这张图是一个直观的表达
分类:
其他好文 时间:
2014-08-02 20:39:03
阅读次数:
251
消防站
题目链接:Click Here~
题意分析:
就是给你f个消防站,n个路口。要你求出在已有消防站的基础上在n个路口的哪个路口上在建立一个消防站,使得n个路口的到离自己最近的消防站最近的距离中最大的一个值最小。即:求n个最近路口中最大的一个,使其改最大值最小。详细的要求自己看题目吧~
算法分析:
因为,是n个路口到每个消防站的距离。所以,我...
分类:
其他好文 时间:
2014-08-02 12:59:03
阅读次数:
204
1.前言在阅读研究线程池的源码之前,一直感觉线程池是一个框架中最高深的技术。研究后才发现,线程池的实现是如此精巧。本文从技术角度分析了线程池的本质原理和组成,同时分析了JDK、Jetty6、Jetty8、Tomcat的源码实现,对于想了解线程池本质、更好的使用线程池或者定制实现自己的线程池的业务场景...
分类:
编程语言 时间:
2014-07-30 23:34:25
阅读次数:
295