算法导论 -- 18




1 2

200x200


概述B树是为磁盘或其他直接辅助互存储设备而设计的一种平衡查找树,可以有效降低磁盘IO操作次数B树的分支因子可能很大,即一个节点可能有几个甚至几千个子女,因此B树的高度就会很小下图给出一个简单的B树,如

#读书笔记    #技术帖    #算法    #算法导论   

200x200


〇、简介与斐波那契堆一样,是一种被称为可合并堆的数据结构如我们之前了解的,二叉堆在堆排序中的性能就很好:堆排序 但是,我们有的时候需要将两个二叉堆进行合并,这时的性能就不能让人满意了 一、二

#读书笔记    #技术帖    #算法    #算法导论   

200x200


插入排序是最简单排序算法之一,其过程非常类似于玩扑克牌时排列扑克牌的过程  /* * file: main.c * author: 龙泉居士 * date: 2012-12-22

#读书笔记    #技术帖    #算法    #算法导论   

200x200


概述二项堆可以以 O(lgn) 的最坏时间复杂度完成 INSERT、MINIMUM、EXTRACT-MIN 和 UNION、DECREASE-KEY、

#读书笔记    #技术帖    #linux    #算法   

200x200


问题描述赫夫曼编码是一种应用广泛并且非常有效的压缩技术,一般可以压缩掉20%到90%赫夫曼编码使用一张字符出现频度表,记录每个字符出现的频度,根据每个字符出现的频度来进行不定长编码,即对于出现频度大的

#读书笔记    #技术帖    #算法    #算法导论   
问题描述活动选择问题就是对几个相互竞争的活动进行调度,每个活动都要求独占某一资源,要在N个活动中挑选出一个互相兼容的活动的最大子集合 问题分析我们可以首先按照各个活动的结束时间将活动进行排序,对于活动 ai 到 aj,如果兼容活动数不为0并且 ak 是其中的一个被兼容的活动,那么活动的总数 = ai 到 ak 的兼容活动数 + ak 到 aj 的兼容活动数 + 1这样,我们就可以将原问题划分为 ai 到 ak 的兼容活动数 与  ak 到 aj 的兼容活动数 两个子问题来分别计算,因此我们可以使用动态规划算法 但是,对于这个问题,我们可以从另外一个角度考虑,就是寻找 ai 到 ak 的最大兼容子集合的最早结束时间,这样对于aj(j>k),将有最大可能添加到原集合,因为活动是按照各个活动的结束时间递增排序的,因此,我们只要顺序地选择活动就可以得到当前子集的最早结束时间的活动,最终,可以得到全局最优解 算法代码/* * file: m
#读书笔记    #技术帖    #算法    #算法导论   

200x200


问题描述如果我们要把一篇文章由英文翻译为法文,那么我们首先需要的是一个字典数据,在这个字典中,每一个英文单词与一个法语单词相对应,但是,在文章中,每个单词出现的概率都是互不相同的,同时也有可能存在需要

#读书笔记    #技术帖    #算法    #算法导论   

200x200


概述最长公共子序列是很多领域的经典问题,其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最

#读书笔记    #技术帖    #算法    #算法导论   
最优子结构动态规划算法最大的特性是:局部最优中产生整体最优。具体方法是:逐层迭代,从局部开始,一步一步走到整体。用动态规划求解最优化问题的第一步是描述最优解的结构,如果问题的一个最优解中包含了子问题的最优解,则该问题具有最优子结构当一个问题具有最优子结构时,我们才可以在分治法、动态规划、贪心策略等算法中进行选择在动态规划中,我们利用子问题的最优解来构造问题的一个最优解 寻找最优子结构时,可以遵循一种共同的模式:问题的一个解可以是做一个选择,如选择一个前一个装配站或者选择一个下标以在该位置分裂矩阵,选择完成后会得到一个或多个子问题假设对一个给定的问题,一直的是一个可以导致最优解的选择,我们不必去关系如何确定这个选择,只要假定它是已知的(与数学上的归纳证明方法是类似的)在已知这个选择后,要确定那些子问题会随之发生,以及如何最好的描述所得到的子问题空间利用一个“剪贴”(cut-and-paste)的技术,来证明在问题的一个最优解中,使用的子问题的解本身也必须是最优的,通过假设一个子问题的解都 不是最优解然后导出矛盾即可 动态规划以自底向上的方式来利用最优子结构,也就是说,首先找到子问题的最优解,解决子问题,然后找到问题的一个最优解,寻找问题的最优解需要在子问题中作出选择,即选择将用哪一个来求解问题 重叠子问题适用于动态规划方法求解的问题必须具有的第
#读书笔记    #技术帖    #算法    #算法导论   

200x200


二叉查找树 对于二叉树的任一节点,如果该节点的左子树都小于他,右子树都大于他,这棵树即被称为“二叉查找树”,又称“二叉排序树”因此,二叉查找树的中序遍历将产生一个由小到大的有序数列需要注意的

#读书笔记    #技术帖    #算法    #算法导论   
1 2



京ICP备15018585号