
算法导论
woniu317
开始刷leetCode,补充基础。个人邮箱:woniu317@126.com
展开
-
线性规划
1 定义在数学中,线性规划问题是目标函数和约束条件都是线性的最优化问题。约束条件不允许为严格的不等式,即不许出现“”,从而保证了能够取得最值(但也不一定存在)。约束条件组成的可行区域是凸的,目标函数取最优值时与可行区域的交集必然为一个单独的定点或者为一条线段。2 求解方法方法一:一种简单直观的求解方法就是求出每个交点的处的坐标,然后分别带入目标函数,便可得到目标函数的最优值。原创 2013-11-23 22:51:17 · 2605 阅读 · 0 评论 -
强连通分量 的 Kosaraju算法
1. 定义在有向图G中,如果两个顶点vi,vj有一条从vi到vj的有向路径,同时还有一条从vj到vi的路径,则称两个顶点强连通。如果有向图G中的每对顶点都强连通,称G是一个强连通图。有向图的极大强连通子图,称为强连通分量。2. 求解 (1) 按照深度优先(DFS)遍历图G。遍历时图中每个顶点获得一个记录“x/y”,其中x表示第一次访问到该顶点时的序号,y表示从该顶点离开时的序号。(原创 2014-04-14 09:52:37 · 2602 阅读 · 0 评论 -
优先队列——斐波那契堆
该文章从优先队列的角度分析并实现了斐波那契堆,并与二叉堆实现的优先队列进行了比较。原创 2014-04-29 17:56:46 · 4532 阅读 · 0 评论 -
分治 & 递归式求解
当要求解的一个输入规模为n且取值又相当大的问题是,直接求解往往比较困难,有的甚至根本没法直接求出。正确的方法是,每当遇到这类问题时,首先应仔细分析问题本身所具有的特性,然后根据这些特性选择适当的设计策略来求解。在将这n个输入分成k个不同子集合的情况下,如果能得到k个不同的可独立求解的子问题(具有重复子问题的用动态规划求解),其中1分治法来求解。如果子问题相对来说还太大,则可反复使用分治策略将这些子原创 2014-03-26 08:25:01 · 2241 阅读 · 0 评论