Alex_McAvoy

想要成为渔夫的猎手

【概述】

倒排表是对次关键码的一种索引表,其索引项包括以下两个结构:

  • 次关键码:要记录的表项
  • 记录号表:存储具有相同次关键字的所有记录的记录号,并且有序排列
阅读全文 »

【概述】

黄金分割又称黄金比例,是指事物各部分间一定的数学比例关系,即将整体一分为二,较大部分与较小部分之比等于整体与较大部分之比,其比值约为 $1:0.618$ 或 $1.618:1$,黄金比例不仅在绘画、艺术上有着重要的审美价值,在工程上也具有极大的作用

在二分查找中,每次查找都是将查找表一分为二,无论数据是偏大还是偏小,很多时候都未必是最合适的做法

阅读全文 »

【概述】

以查字典为例,在英文字典中查 “apple” 时,下意识的会翻开前面的书页,当查 “zoo” 时,下意识的翻开一定是后面的书页,显然,此时还绝对不是从中间开始查起,而且有一定目的地从前或从后查找

同样的,以取值范围在 $1$ 到 $10000$ 间的从小到大均匀分布在数组中的 $100$ 个元素为例,若要查找元素 $5$,那么自然而然的会考虑从数组下标较小的开始查找

阅读全文 »

【概述】

分块索引,又称索引顺序查找,其吸取了顺序查找和二分查找的优点,属于线性索引结构,既适用于静态索引,又适用于动态索引

其基本思想是将查找表分为若干子块,这些子块之间满足分块有序这个要求,即这些块满足以下两个条件:

阅读全文 »

【概述】

稠密索引常见于静态索引中,在线性索引里,若文件中的每个记录对应一个索引项,则这种索引称为稠密索引

在稠密索引中,无论文件是否按关键码有序,索引项总是按关键码有序进行排列

阅读全文 »

【概述】

在进行数据查找操作,当数据量不是很大时,一般的查找技术足以满足需求

但对于服务器来说,其是以大型数据库为中心的,并且其将大型数据库作为文件存放于外存中的,而当需要进行数据查找操作时,查找技术处理过于缓慢,为加快查找速度,设计出了索引这种结构

阅读全文 »

无论什么时候,每当想起自己曾满怀激情、兴奋、惊奇与真诚等等情绪,在键盘上敲出的第一个程序——“Hello World”,就总是会充满一种不知名的情绪

记得很久很久以前对 G 说过,真正地程序员都是一群充满好奇心的为解决问题甚至不眠不休并以此为乐的疯子,他们之中有人简单纯粹内心火热,有人善于分享乐于助人,也有人沉默寡言不苟言笑,还有人孤僻冷漠难以相处,但他们无一不是理想主义者,从敲出 “Hello World” 的那一刻起,他们的最初梦想和最终目的,就是为了改变这个世界

从最开始接触计算机至今大约有 8、9 个年头了,儿时大多只是瞎捣鼓,真正开始接触编程后,又因为种种原因没有 Blog,最近决定建一个属于自己的 Blog

阅读全文 »

【基本思想】

计数排序是非比较类排序一种,其基本思想是:对于给定的输入序列中的每一个元素 $x$,确定该序列中值小于 $x$ 的元素的个数,一旦有了这个信息,就可以将 $x$ 直接存放到最终的输出序列的正确位置上

例如,如果输入序列中只有 $17$ 个元素的值小于 $x$ 的值,则 $x$ 可以直接存放在输出序列的第 $18$ 个位置上

阅读全文 »

【基本思想】

基数排序借助多关键字排序的思想,对单逻辑关键字进行排序,简单来说,其是基于关键字各位的大小进行排序

假设长度为 $n$ 的线性表中每个结点 $a_j$ 的关键字由 $d$ 元组 $(k_j^{d_-1},k_j^{d_-2},…,d_j^1,d_j^0)$ 组成,满足 $0\leq k_j^i\leq r-1$,其中 $k_j^{d-1}$ 为最主关键字,$k_j^0$ 为最次关键字,且 $0\leq j <n,0\leq i\leq d-1$

阅读全文 »

【基本思想】

桶排序,是非比较排序中最简单一种排序方法,适用于待排序数据值域较大但分布比较均匀的情况

其基本思想是:假设待排序记录的值都在 $0$ 到 $m-1$ 之间,那么就设置 $m$ 个桶,将值为 $i$ 的记录分配到第 $i$ 个桶中,然后再将各个桶中的数据依次收集起来

阅读全文 »