算法导论 第18章 B树与其他树的结构不同的是 B数是多叉而不是二叉树 而且分叉因子很大一般使用于数据库 针对需要硬盘IO的情况而使用 可以降低磁盘IOB树的一个节点是以磁盘的页面为单位,而不是数据内容为单位 一般一个节点等于一个完整的磁盘页以下B树性质是本人理解 具体定义可查阅算法导论18章节除了 ...
分类:
其他好文 时间:
2016-12-27 14:20:11
阅读次数:
248
先贴问题: 1个n位正整数a,删去其中的k位,得到一个新的正整数b,设计一个贪心算法,对给定的a和k得到最小的b; 一.我的想法:先看例子:a=5476579228;去掉4位,则位数n=10,k=4,要求的最小数字b是n-k=6位的; 1、先找最高位的数,因为是6位数字,所以最高位不可能在后5位上取 ...
分类:
编程语言 时间:
2016-12-16 23:04:53
阅读次数:
271
递归与分治 许多有用的算法在结构上是递归的:为了解决一个给定的问题,算法一次或多次递归地调用其自身以解决紧密相关的若干子问题。这些算法典型地遵循分治法的思想:将原问题分解为几个规模较小但类似于原问题的子问题,递归地求解这些子问题,然后再合并这些子问题的解来建立原问题的解。 分治模式在每层递归时都有三 ...
分类:
编程语言 时间:
2016-12-04 23:21:49
阅读次数:
348
排序问题 输入:n个数的一个序列<a1, a2, ..., an> 输出:输入序列的一个排列<b1, b2, ..., bn>,满足 b1 ≤ b2 ≤ ... ≤ bn。 插入排序 对于插入排序,我们将其伪代码命名为Insertion-sort,其中的参数是一个数组A[1..n],包含长度为n的要 ...
分类:
编程语言 时间:
2016-12-04 00:01:20
阅读次数:
509
什么是二叉搜索树 顾名思义,一棵二叉搜索树是以一棵二叉树来组织的。这样一棵树可以使用一个链表数据结构来表示,其中每个结点就是一个对象。除了key和卫星数据之外,每个结点还包含属性left、right和p,它们分别指向结点的左孩子、右孩子和双亲。如果某个孩子结点和父结点不存在,则相应属性的值为NIL。 ...
分类:
编程语言 时间:
2016-12-03 15:06:51
阅读次数:
1503
按照算法导论写的 还没有测试复杂度到底怎么样 不过这个真的很卡内存,挖个坑,以后写空间优化 还有Matthew Anderson, Siddharth Barman写了一个关于矩阵乘法的论文 《The Coppersmith-Winograd Matrix Multiplication Algori ...
分类:
其他好文 时间:
2016-12-03 01:32:00
阅读次数:
258
对于一个算法,它可能会出现最佳情况比如O(n),也有可能出现最坏情况O(n^2),但更多的可能是出现一般情况O(nlgn)。那么是否采用这个算法取决于它的平均情况,也就是它的期望值,这是一种概率分析手段。 下面就来具体介绍这种分析手段,前提假设您已经了解了离散数学的概率论的随机变量和期望值的相关内容 ...
分类:
编程语言 时间:
2016-11-28 09:27:40
阅读次数:
279
讲真,链表是个十分入门且简单的数据结构,虽然用的不多,但有时候还真非它莫属。 然而,作为一名C++选手,我的链表总是被各种大常数以及难写的代码困扰。 今天从算法导论上学来了点小技巧,赶紧代码实现了一下。 之前,我的链表都是这么写的。 代码还是蛮好看的,自认为。然而接连不断地新建结点的常数总是让人吃不 ...
分类:
其他好文 时间:
2016-11-24 07:31:03
阅读次数:
183