博客专栏  >  编程语言   >  《算法导论》答案

《算法导论》答案

《算法导论》是不可多得的经典算法教材,值得我们深入理解,仔细分析。本系针对《算法导论》中文版原书第2版所写的答案,代码均用C++实现。不保证完全正确,旨在抛砖引玉。

关注
63 已关注
27篇博文
  • 算法导论 9.1-1 求第二小元素

    一、题目描述证明:在最坏情况下,利用n+ceil(lgn)-2次比较,即可得到n个元素中的第2小元素。(提示:同时找最小元素)二、常规方法使用两次for循环,分别将数组从前往后扫描。 第一扫次扫描过...

    2015-11-23 19:12
    1430
  • 算法导论 第22章 图的基本算法 22.5 强联通分支

    一、综述  定义:   二、代码 #include using namespace std; #define N 10 #define WHITE 0 #define GRAY 1 #defin...

    2012-08-07 18:42
    5045
  • 算法导论 第22章 图的基本算法 22.4 拓扑排序

    一、综述 定义:对有向无回路图G=(V,E)进行须拓扑排序后,结果为该图所有顶点的一个线性序列,满足如果G包含边(u, v),则在该序列中,u就出现在v的前面(如果图是有回路的,就不可能存在这样的线...

    2012-08-07 16:41
    4255
  • 算法导论 第22章 图算法 22.3 深度优先搜索

    一、综述  深搜策略:在深搜过程中,对于最新发现的顶点,如果它还有以此为起点的而未探测到的边,就沿此边继续探测下去。当顶点v的所有边都已被探测过后,搜索将回溯到发现顶点v有起始点的那些边。 时间戳...

    2012-08-07 15:40
    5716
  • 算法导论 第22章 图算法 22.2 广度优先搜索

    一、综述 BFS蛮简单的,没什么好的综述的。 BFS算法的算法过程与它是有向图还是无向图没有关系,也与用邻接图还是用矩阵表示也没有关系。本文的代码是用邻接图实现的,例子是22-3的有向图。 用邻...

    2012-08-07 09:54
    5273
  • 算法导论 第22章 图的基本算法 22.1 图的表示

    一、综述 图的表示方法通常有两种,即邻接表表示法和邻接矩阵表示法。这两种方法都可以表示有向图和无向图 1.邻接表表示法 (1)用邻接表表示无向图 (2)用邻接表表示有向图 (3)邻接...

    2012-08-07 09:19
    4977
  • 算法导论 第21章 用于不相交集合的数据结构

    一、综述 不相交集合数据结构(disjoint-set data struct)保持一组不相交的动态集合S={S1,S2,……,Sk} 这种数组结构支持三种操作: (1)MAKE-SET(x):...

    2012-08-03 18:45
    4438
  • 算法导论 第20章 斐波那契堆

    只能把看懂的一部分先写出来了 一、综述 1.斐波那契堆 斐波那契堆是可合并堆 在不涉及删除的操作(除去EXTRACT和DELETE)中,操作仅需O(1)的平摊运行时间 当EXTRACT和DELETE的...

    2012-08-02 16:31
    11814
  • 算法导论-第19章-二项堆

    一、概念 1.可合并堆 (1)可合并堆应支持的操作 MAKE-HEAP() INSERT(H, x) MINIMUM(H) EXTRACT-MIN(H) UNION(H1, H2) (...

    2012-07-30 18:01
    6035
  • 算法导论 第18章 B树

    一、定义 1、B树 B树是为磁盘或其它直接存取辅助存储设备而设计的一种平衡查找树,主要特点是降低磁盘I/O操作次数。 B树以自然的方式推广二叉查找树。 B树的分支因子由磁盘特性所决定。  2...

    2012-07-29 12:29
    5648
  • 第16章 贪心算法

    一、综述 贪心算法是使所做的选择看起来都是当前最佳的,期望通过所做的局部最优选择来产生出一个全局最优解 最小生成树算法是贪心算法的一个经典的例子 二、活动选择问题 (1)代码 #include ...

    2012-07-15 14:00
    7277
  • 第15章 动态规划

    一、综述 动态规划是通过组合子问题的解而解决整个问题的。 动态规划适用于子问题不是独立的情况,也就是各子问题的包含公共的子子问题。 动态规划对每个子问题只求解一次,将其结果保存在一张表中。 动态规划通...

    2012-07-13 18:34
    4599
  • 算法导论-14-2-Josephus排列

    题目: Josephus问题的定义如下:假设n个人排成环形,且有以正整数m。 a)假设m为整数。请描述一个O(n)时间的算法,使之对给定的整数n,输出(n, m)-Josephus排列。 b)假设m不...

    2012-08-28 11:00
    2808
  • 算法导论-14-1-最大重叠点

    题目: 假设希望对一组区间记录一个最大重叠点,亦即覆盖它的区间最多的那个点。 a)证明:最大重叠点总存在于某段的端点上。 b)设计一数据结构,能有效地支持操作INTERVAL-INSERT,INTE...

    2012-08-27 20:21
    3745
  • 算法导论 第14章 14.3 区间树

    一、综述 1.区间树 区间树中一种对动态集合进行维护的红黑树,该集合中的每个元素x都包含一个区间int[x] 2.基础数据结构 红黑树,其中每个结点x包含一个区间域int[x],x的关键字为区间的低端...

    2012-08-25 20:10
    7301
  • 算法导论 第14章 14.1 动态顺序统计

    一、概念 1.动态顺序统计 动态顺序统计是指,在一个动态的无序的集合中,任意的顺序统计量都可以在O(lgn)时间内确定。 2.基础数组结构 红黑树,每个树结点的域包括:key[x],color[x],...

    2012-07-12 21:44
    3396
  • 算法导论 第13章 红黑树

    一、概念 1.定义与性质 (1)定义 红黑树字义:满足(a)每个结点或是红的,或是黑的(b)根结点是黑的(c)每个叶结点(NIL)是黑的(d)如果一个结点是红的,则它的两个儿子是黑的(e)对每个结点,...

    2012-07-08 21:16
    8175
  • 算法导论 第12章 二叉查找树

    一、概念 1.定义与性质 (1)设x为二叉查找树中的一个结点,若y是x左子树中的一个结点,则key[y] (2)二叉查找树上执行的基本操作的时间与树的高度成正比。 2.结构 (1)结点结构: 关键字...

    2012-07-05 18:56
    7541
  • 算法导论-第11章-散列表

    一、概念 1.综述 散表表仅支持INSERT、SEARCH、DELETE操作。 把关键字k映射到槽h(k)上的过程称为散列。 多个关键字映射到同一个数组下标位置称为碰撞。 好的散列函数应使每个关键字都...

    2012-07-03 22:25
    6476
  • 算法导论 第10章 10.4 有根树的表示

    一、概念 1.二叉树 (1)用域p、left、right来存放指向二叉树T中的父亲、左儿子、右儿子。没有则为NULL。 (2)结点结构struct node { node *p; ...

    2012-07-02 14:07
    4387

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