在一个由n个元素组成的集合中,第i个顺序统计量(order statistic)是该集合中第i小的元素。用非形式化的描述来说,一个中位数(median)使它所属集合的“中点元素”。当n为奇数时,中位数是唯一的,位于i=(n+1)/2处。当n为偶数时,存在两个中位数,分别位于i=n/2和i=n/2+1...
分类:
其他好文 时间:
2014-09-01 15:33:03
阅读次数:
452
校招开始了,发现自己数据结构,Algorithms的知识都还给老师了。喵了个呜的!《算法导论》开啃吧~从第三章数据结构开始吧~10.1-2 :如何用一个数组A[1...n]来实现两个栈,使得两个栈中的元素总数不到n时,两者都不会发生上溢。注意PUSH和POP操作的时间应为O(1)。解:思想是,建一维...
分类:
其他好文 时间:
2014-09-01 12:28:43
阅读次数:
187
算法导论在计算几何学这章给出了最近顶点对的求法:采用典型的分治算法(1)分解:将所有顶点按照x坐标排序后大致分为俩个大小相等的集合L和R(2)求解:分别求出L和R集合中的最小具体,并取二者的较小值为当前的最小值ans(3)合并:对于分属于两个集合的点,每次各取出一个点,计算两点的距离,每次与ans比...
分类:
其他好文 时间:
2014-08-31 21:18:31
阅读次数:
159
这题利用二叉堆维持堆性质的办法来维持Young氏矩阵的性质,题目提示中写得很清楚,不过确实容易转不过弯来。a,b两问很简单。直接看c小问:按照Young氏矩阵的性质,最小值肯定在左上角取得,问题在于取出最小值后如何保持矩阵的性质。可以参照max_heapify中的做法,先取出最小值,然后将矩阵左上角...
分类:
其他好文 时间:
2014-08-31 18:25:21
阅读次数:
205
博主今年刚上大三,正好开算法这门课。由于博主本人比较喜欢算法但又比较懒,啃不动算法导论,所以决定拿这本书下手。这本书是王晓东的第四版《计算机算法设计与分析》。初步打算将每章后面的算法题都用代码实现。有些题跟某个ACM题目很像,我会把该ACM题的链接贴上。有的题没OJ交所以可能是错的。如有发现,还望指...
分类:
其他好文 时间:
2014-08-31 17:06:41
阅读次数:
271
d叉堆的实现相对于二叉堆变化不大,首先看它如何用数组表示。考虑一个索引从1开始的数组,一个结点i最多可以有d个子结点,编号从id - (d - 2) 到 id + 1。从而可以知道一个结点i的父结点计算方法为: (i + d - 2) / d。第二个问题是 一个含有n个元素的d叉堆的高度,就是一个简...
分类:
其他好文 时间:
2014-08-31 11:49:51
阅读次数:
172
BUILD-MAX-HEAP'(A) heap-size[A]<-1 for i <- 2 to length[A] do MAX-HEAP-INSERT(A, A[i])如上,题目给出一种使用插入的办法建堆的算法,而书中6.4节给出的建堆算法如下:BUILD-MAX-HE...
分类:
其他好文 时间:
2014-08-31 10:25:01
阅读次数:
195
【设计一个动态规划算法的四个步骤】
1、刻画一个最优解的特征。
2、递归地定义最优解的值。
3、计算最优解的值,通常采用自底向上方法。
4、利用计算出的信息构造一个最优解。
【最优子结构(optimal substructure)】
问题的最优解由相关子问题的最优解组合而成,而这些子问题可以独立求解。
【动态规划两种等价实现方法】
1、 带备忘的自顶向下法(top-down...
分类:
其他好文 时间:
2014-08-30 15:12:29
阅读次数:
219
本章节主要证明对包含n个元素的输入序列来说,任何比较排序在最坏情况下都要经过omega(nlgn)次比较。从而证明归并排序和堆排序是渐近最优的。同时,介绍了三种线性时间复杂度的排序算法:计数排序、基数排序和桶排序。1. 排序算法的下界在确定排序算法的下界时,借助决策树模型。决策树模型是一棵完全二叉树...
分类:
其他好文 时间:
2014-08-29 18:01:18
阅读次数:
239
AKamai??????????????? 上界(最坏情况分析worst-case-analysis):对用户承诺 average case:T(n)是所有输入的加权平均值,期望时间 bast case(假象):有些算法对特定输入的时间时间更短,但是平均时间和上界可能很长 ...
分类:
其他好文 时间:
2014-08-29 13:16:18
阅读次数:
167