博客专栏  >  编程语言   >  算法的二三事

算法的二三事

阅读经典,积累点滴,广泛思考

关注
2 已关注
21篇博文
  • 单源最短路径

    在最短路径问题中,给定一个带权重的有向图G=(V,E)和权重函数w:E→R,该权重函数将每条边映射到实数值的权重上。图中一条路径p=[v0,v1,•••,vk]的权重w(p)是构成该路径的所有边的权重...

    2017-03-01 08:17
    517
  • 最小生成树

    一个无向连通图G=(V,E),对于每条边(u,v) ∈E,赋予其权重w(u,v),希望找到一个无环子集T⊆E,既能够将所有的结点连接起来,又具有最小的权重。由于T是无环的,并且连通所有的结点,因此,T...

    2017-02-26 22:47
    436
  • 基本的图算法

    图的基本概念和基本的图算法(广度优先搜索和深度优先搜索)。

    2017-02-22 22:11
    769
  • van Emde Boas树

    van Emde Boas树支持优先队列操作以及一些其他操作,每个操作最坏运行时间为O(lg lgn),这种数据结构限制关键字必须为0~n-1的整数且无重复。

    2017-02-21 22:37
    550
  • 斐波那契堆

    斐波那切堆数据结构有两种用途。第一种,它支持一系列操作,这些操作构成了所谓的“可合并堆”;第二种,斐波那切堆的一些操作可以在常数摊还时间内完成,这使得这种数据结构非常适合于需要频繁调用这些操作的应用。

    2017-02-20 21:43
    356
  • B树

    B树是为磁盘或其他直接存取的辅助设备而设计的一种平衡搜索树,B树类似于红黑树,但它们在降低磁盘I/O操作数方面更好一些,许多数据库系统使用B树或者B树的变种来存储信息。

    2017-02-17 12:33
    179
  • 贪心算法

    与动态规划算法类似,贪心算法通常用于最优化问题,贪心算法的思想是每步选择都追求局部最优,它在每一步都做出当时看起来最佳的选择,希望这样的选择能导致全局最优解。贪心算法并不保证得到最优解,但对很多问题确...

    2017-02-12 15:29
    238
  • 动态规划(二)

    动态规划原理和最长公共子序列问题。

    2017-02-07 12:37
    175
  • 动态规划(一)

    动态规划的基本概念,以及在钢条切割问题和矩阵链乘法问题的应用求解。

    2017-02-06 17:04
    168
  • 红黑树的基本插入和删除操作

    红黑树是一种二叉搜索树,它在每个结点上增加了一个存储位来表示结点的颜色,可以是RED或者BLACK,通过对任何一条从根到叶子的简单路径上各个结点的颜色进行约束,红黑树确保没有一条路径会比其他路径长出2...

    2017-02-02 17:12
    343
  • 散列表数据结构之一:分离链接法

    基本概念       查找树ADT允许对一组元素进行各种操作,而今次总结的散列表(hash table)ADT,不过它只支持二叉查找树所允许的一部分操作,散列表的实现常常叫做散列(hashing),以...

    2016-12-07 09:15
    233
  • AVL树及关于插入的说明

    基本概念       AVL树是带有平衡条件的二叉查找树,这个平衡条件必须保持:一棵AVL树的每个结点的左子树和右子树的高度最多差1。struct AvlNode { ElementType El...

    2016-12-05 15:19
    346
  • 日常记录:《算法导论》学习笔记之一

    算法作为计算编程中的重要组成部分,其意义显而易见,所以我选择算法和数据结构中的经典书籍《算法导论》作为主要参考书目来深入学习算法和数据结构的内容。

    2016-11-18 11:19
    245
  • 日常记录:《算法导论》学习笔记之二

    在《算法导论》中还提到了合并算法,该算法采用分治法(divide-and-conquer)的思想。再次以整理扑克牌为例说明,当一堆杂乱无序的牌堆分为有序的两堆,比较两堆牌最上面的一张,按从小到大的方式...

    2016-11-20 20:40
    217
  • 日常记录:《算法导论》学习笔记之三—堆排序

    堆排序(heapsort)算法的实现。

    2016-11-21 17:23
    193
  • 日常记录:《算法导论》学习笔记之四—快速排序

    《算法导论》第7章讲到了快速排序(quick sort),快速排序通常是用于排序的最佳的实用选择,因为其平均性能比较好。与合并算法相同,快速排序也是基于分治模式的,笔者再次选择整理扑克牌的情形来解释这...

    2016-11-23 13:08
    197
  • 计数排序—《算法导论》学习笔记之五

    在之前的学习中,各元素的次序基于输入元素间的比较,这类排序算法称为比较排序。在本书的第八章,介绍了三种以线性时间运行的算法:计数排序、基数排序和桶排序,用非比较的一些操作确定排序顺序。   计数排序...

    2016-11-25 07:50
    181
  • 栈和队列的数组实现—《算法导论》学习笔记之六

    《算法导论》在介绍了一些排序算法以及关于它们运行的时间分析后,开始介绍一些简单的数据结构,栈,队列,表,有根树···这些是实现高级数据结构以及更多算法设计的基础知识,有一种排序算法是桶排序,可以利用链...

    2016-11-26 20:38
    187
  • 表、栈和队列

    表ADT   形如A1,A2,A3…An的表,这个表的大小为n,而大小为0的表称为空表,非空表中,Ai+1后继Ai,Ai-1前驱Ai,表ADT的相关操有PrintList打印表中的元素;Creat...

    2016-11-29 19:50
    197
  • 简易计算器实现混合运算——栈的应用

    如果把操作限制于一个表,那么这些操作会执行的很快,然而,令人惊奇的是,这些少量的操作非常强大和重要,这就表明表、栈和队列的应用十分广泛。这里笔者谈谈栈的一个应用,在日后的学习总结中再慢慢将其余的应用展...

    2016-11-30 21:46
    575
img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部