博客专栏  >  编程语言   >  算法之道

算法之道

主要用c实现了《算法导论》一书的绝大多数算法

关注
41 已关注
43篇博文
  • 【算法导论】多项式求和

    一般情况下,一元n次多项式可写成: 其中,pi是指数为ei的项的非零系数,且满足 因此,我们可以采用线性表(定义:线性表是由n个数据元素构成的有限序列,比如数组、向量、链表等等)来表示: ...

    2014-10-26 15:18
    2214
  • 【Qt编程】3D迷宫游戏

    说起迷宫想必大家都很熟悉,个人感觉迷宫对人的方向感是很大的考验,至少我的方向感是不好的,尤其是在三维空间中。由于这段时间帮导师做项目用到了三维作图,便心血来潮想做个三维迷宫玩玩。要想画出三维的迷宫游戏...

    2014-10-18 18:30
    3069
  • 【算法导论】最大二分匹配

    最大二分匹配问题在现实生活中比较普遍,常常出现在任务分配上。例如,有5个员工,4个不同的任务,而不同员工能够完成不同或相同的任务。也就是说,有的员工只会做这个任务,有的员工会做那个任务,有的员工会做一...

    2014-01-04 20:37
    1737
  • 【算法导论】最大流算法

    最大流问题就是在容量容许的条件下,从源点到汇点所能通过的最大流量。 1 流网络 网络流G=(v, E)是一个有向图,其中每条边(u, v)均有一个非负的容量值,记为c(u, v) ≧ 0。如果(u, ...

    2014-01-02 21:23
    2827
  • 【算法导论】幻方算法

    说起幻方,大家应该在小学时候就已经接触过了,最简单的就是九宫格,射雕英雄传中的那段至今还记得:戴九履一,左三右七,二四为肩,六八为足。下面我们就来看看这个有趣的问题。 幻方可以分为:奇数阶幻方、双偶阶...

    2013-12-30 20:39
    2181
  • 【算法导论】地图染色算法

    地图染色问题可以根据四色定理来解决。所谓四色定理,就是指可以用不多于四种的颜色对地图着色,使相邻的行政区域不重色,因此我们可以用四色定理的结论,用回溯算法对一幅给定的地图染色。 算法的基本思想是:从第...

    2013-12-28 22:54
    4199
  • 【算法导论】有向图的可达矩阵

    有时候,我们关注的不是从一个地点到另一个地点的费用,而是能否从一个顶点到达另一个顶点。因此我们可以假设所有边的权值为单位1,在下面的算法中,我们可以在O(n*n*n)的时间内计算出图中任意两点是否可达...

    2013-12-27 11:05
    4209
  • 【算法导论】每对顶点之间的最短路径算法

    对于一个顶点数为N的有向网路图,我们可以通过前面所提到的单源最短路径算法执行N次来获得每一对顶点间的最短路径。这种方法的时间复杂度为O(N*N*N)。如果网络中有负权值的边,则需要使用前面提到的单源最...

    2013-12-26 10:52
    2777
  • 【算法导论】单源最短路径之Dijkstra算法

    Dijkstra算法解决了有向图上带正权值的单源最短路径问题,其运行时间要比Bellman-Ford算法低,但适用范围比Bellman-Ford算法窄。、 迪杰斯特拉提出的按路径长度递增次序来产生源点...

    2013-12-23 20:25
    2030
  • 【算法导论】单源最短路径之Bellman-Ford算法

    单源最短路径指的是从一个顶点到其它顶点的具有最小权值的路径。我们之前提到的广度优先搜索算法就是一种无权图上执行的最短路径算法,即在所有的边都具有单位权值的图的一种算法。单源最短路径算法可以解决图中任意...

    2013-12-20 18:10
    3728
  • 【算法导论】最小生成树之Prime法

    关于最小生成树的概念,在前一篇文章中已经讲到,就不在赘述了。下面介绍Prime算法: 其基本思想为:从一个顶点出发,选择由该顶点出发的最小权值边,并将该边的另一个顶点包含进来,然后找出由这两个顶点出发...

    2013-12-19 19:45
    1657
  • 【算法导论】最小生成树之Kruskal法

    在图论中,树是指无回路存在的连通图。一个连通图的生成树是指包含了所有顶点的树。如果把生成树的边的权值总和作为生成树的权,那么权值最小的生成树就称为最小生成树。因为最小生成树在实际中有很多应用,所以我们...

    2013-12-17 17:41
    2236
  • 【算法导论】有向图的深度优先搜索遍历

    在前面的文章中,我已经讨论了无向图的遍历,现在发现在有向图中,可能会发生无法遍历到所有节点的情况。因此在经历一次深度优先搜索遍历后,如果还存在未被搜索到的节点,则需要再从新的节点开始进行深度优先搜索遍...

    2013-12-15 18:32
    5271
  • 【算法导论】邻接表存储的拓扑排序

    上一篇文章中讲述了用邻接矩阵存储的图的拓扑排序,下面本文介绍用邻接表存储的图的拓扑排序。 关于拓扑排序的概念及基本思想,我在上一篇文章中已经较为详细的描述了,这里不在介绍。我们知道利用邻接矩阵进行拓扑...

    2013-12-13 16:50
    2668
  • 【算法导论】邻接矩阵存储的拓扑排序

    在很多应用中,很多事情都是按照一定的次序来进行的,比如说起床穿衣时,不可能先穿鞋再穿袜子,但是穿袜子和穿裤子可以不分先后次序。这种按照一定顺序进行的活动,可以使用顶点表示活动,顶点之间的有向边表示活动...

    2013-12-11 17:31
    2220
  • 【算法导论】图的深度优先搜索遍历(DFS)

    关于图的存储在上一篇文章中已经讲述,在这里不在赘述。下面我们介绍图的深度优先搜索遍历(DFS)。 深度优先搜索遍历实在访问了顶点vi后,访问vi的一个邻接点vj;访问vj之后,又访问vj的一个邻接点,...

    2013-12-10 19:24
    2659
  • 【算法导论】图的广度优先搜索遍历(BFS)

    图的存储方法:邻接矩阵、邻接表         例如:有一个图如下所示: 则上图用邻接矩阵可以表示为: 用邻接表可以表示如下: 邻接矩阵可以很容易的用二维数组表示,下面主要看看怎样构成邻接表...

    2013-12-09 20:50
    2676
  • 【算法导论】链表队列

    链表队列很简单,之前看到过,没有用程序实现。其原理就是遵循FIFO原则,只能从队首取元素,从队尾插入元素,就和排队模型一样。因此只需要队首指针和队尾指针就可以方便的进行队列操作。因为在最近看的图论算法...

    2013-12-06 17:52
    1556
  • 【算法导论】B树

    一棵B树T是具有如下性质的有根树(设根为root): 1.每个节点x有一下域:(a)num,当前存储在节点x的关键字个数,关键字以非降序存放,因此key[i]                     ...

    2013-12-04 20:21
    1575
  • 【算法导论】贪心算法之背包问题

    在讨论贪心算法时,我们先了解贪心算法与动态规划之间的区别与联系,后面我们将发现可以用0、1背包问题和部分背包问题来比较贪心算法和动态规划的关系。 我们知道,对于一个最优解问题,贪心算法不一定能够产生一...

    2013-12-01 11:32
    4518

img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部