Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >12.5 直接存取与多关键字文件

12.5 直接存取与多关键字文件

原创
作者头像
小林C语言
修改于 2020-12-14 07:22:48
修改于 2020-12-14 07:22:48
7480
举报

01直接存取文件(散列文件)

1、直接存取文件指的是利用杂凑(Hash)法进行组织的文件。

2、直接存取文件类似于哈希表,即根据文件中关键字的特点设计一种哈希函数和处理冲突的方法将记录散列到存储设备上,故又称散列文件。

3、与哈希表不同的是,对于文件来说,磁盘上的文件记录通常是成组存放的。

4、若干个记录组成一个存储单位,在散列文件中,这个存储单位叫做桶(Bucket)。

5、直接存取文件的优点是:文件随机存放,记录不需进行排序;插入、删除方便,存取速度快,不需要索引区,节省存储空间。

6、直接存取文件的缺点是:不能进行顺序存取、只能按关键字随机存取,且询问方式限于简单询问,并且在经过多次的插入、删除之后,也可能造成文件结构不合理,即溢出桶满而基桶内多数为被删除的记录。此时需重组文件。

02多重表文件

1、多重表文件(Multilist File)的特点是:记录按主关键字的顺序构成一个串联文件,并建立主关键字的索引(称为主索引);对于每一个次关键字项建立次关键字索引(称为次索引)。

2、所有具有同一次关键字的记录构成一个链表。

3、主索引为非稠密索引,次索引为稠密索引。每个索引项包括次关键字、头指针和链表长度。

4、多重链表文件易于构造,也易于修改。如果不要求保持链表的某种次序,则插入一个新记录时容易的,此时可将记录插在链表的头指针之后。但是,要删去一个记录却很繁琐,需在每个次关键字的链表中删去该记录。

03倒排文件

1、倒排文件和多重表文件的区别在于次关键字的结构不同。

2、通常,称倒排文件中的次关键字索引为倒排表,具有相同次关键字的记录之间不设指针相链,而在倒排表中该次关键字的一项中存放这些记录的物理记录号。

3、倒排表作索引的好处在于检索记录较快。特别是对某些询问,不用读取记录,就可得到解答。

C语言 | 用指针对10个数排序

更多案例可以go公众号:C语言入门到精通

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
12.7 多关键字文件
1、多重表文件(Multilist File)的特点是:记录按主关键字的顺序构成一个串联文件,并建立主关键字的索引(称为主索引);对于每一个次关键字项建立次关键字索引(称为次索引)。
小林C语言
2019/06/10
5830
操作系统文件管理
在现代计算机系统中,要用到大量的程序和数据,因内存容量有限,且不能长期保存,故而平时总是把它们以文件的形式存放在外存中,需要时再随时将它们调入内存。如果由用户直接管理外存上的文件,不仅要求用户熟悉外存特性,了解各种文件的属性,以及它们在外存上的位置,而且在多用户环境下,还必须能保持数据的安全性和一致性。显然,这是用户所不能胜任、也不愿意承担的工作。于是,取而代之的便是在操作系统中又增加了文件管理功能,即构成一个文件系统,负责管理在外存上的文件,并把对文件的存取、共享和保护等手段提供给用户。这不仅方便了用户,保证了文件的安全性,还可有效地提高系统资源的利用率。
黄规速
2022/04/14
1K0
操作系统文件管理
12.6 直接存取文件
2、直接存取文件类似于哈希表,即根据文件中关键字的特点设计一种哈希函数和处理冲突的方法将记录散列到存储设备上,故又称散列文件。
小林C语言
2019/06/10
7400
数据结构:文件管理,算法
数据项(item、field):数据文件中最小单位,反映实体某一方面的属性的数据表示。
ttony0
2022/12/26
8880
数据结构:文件管理,算法
面试题63(链表,哈希表)
关于链表,哈希表 1·以下关于链式存储结构的叙述中哪一个是正确的? A.链式存储结构不是顺序存取结构 B.逻辑上相邻的节点物理上必须邻接 C.可以通过计算直接确定第i个节点的存储地址 D.插人、删除运算操作方便,不必移动节点 正确解析如下... 存储结构分为以下四种。 (1) 随机存取,即可以随意直接存取任意一个元素,可以通过下标直接存取任何一个元素如数组等;又如内存,可以通过地址直接访问任意一个空间。 (2) 顺序存取,就是只能从前到后逐个访问。像链表这种结构,不能够直接通过下标访问,必须从表头开始,向
Java学习
2018/04/17
7850
海量数据处理:算法
海量信息即大规模数据,随着互联网技术的发展,互联网上的信息越来越多,如何从海量信息中提取有用信息成为当前互联网技术发展必须面对的问题。
全栈程序员站长
2022/09/10
1K0
海量数据处理:算法
海量数据处理
  针对海量数据的处理,可以使用的方法非常多,常见的方法有hash法、Bit-map法、Bloom filter法、数据库优化法、倒排索引法、外排序法、Trie树、堆、双层桶法以及MapReduce法。 1、hash法 hash法也成为散列法,它是一种映射关系,即给定一个元素,关键字是key,按照一个确定的散列函数计算出hash(key),把hash(key)作为关键字key对应的元素的存储地址,再进行数据元素的插入和检索操作。   散列表是具有固定大小的数组,表长应该是质数,散列函数是用于关键字和存储
Mister24
2018/05/14
2.2K0
数据结构-常用的查找算法
本篇讲讲数据结构里面常用的几个查找算法,数据结构理论篇系列差不多接近尾声了,接下来会分享一些比较特殊的概念,比如KMP、郝夫曼树等等,讲完概念以后会进入刷题阶段。刷题会用Python来,请持续关注。
张俊红
2019/03/06
2.1K0
数据结构-常用的查找算法
操作系统之文件管理
将文件属性从外存拷到内存中打开文件表的一表目中 将其编号返回给用户。 系统可利用该编号到打开文件表中去查找。
JavaEdge
2018/05/16
1.6K0
MySQL入门必须知道的知识点!
MySQL中通过show ENGINES指令可以看到所有支持的数据库存储引擎。最为常用的就是MyISAM和InnoDB两种。
黄啊码
2021/08/05
5810
MySQL入门必须知道的知识点!
操作系统入门(六)文件管理
-文件是在逻辑上具有完整意义的信息集合,它有一个名字作标识 -文件系统是操作系统中负责管理和存取文件的程序模块,也称为信息管理系统
看、未来
2020/08/25
1.2K0
检索技术核心 笔记
数组和链表分别代表了连续空间和不连续空间的最基础的存储方式,它们是线性表(Linear List)的典型代表。其他所有的数据结构,比如栈、队列、二叉树、B+ 树等,都不外乎是这两者的结合和变化。以栈为例,它本质就是一个限制了读写位置的数组,特点是只允许后进先出。
OwenZhang
2021/12/08
8440
检索技术核心 笔记
入门 | 海量数据处理算法总结【超详解】
作者 | Angel_Kitty ➤1. Bloom Filter 【Bloom Filter】 Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。它是一个判断元素是否存在集合的快速的概率算法。Bloom Filter有可能会出现错误判断,但不会漏掉判断。也就是Bloom Filter判断元素不再集合,那肯定不在。如果判断元素存在集合中, 有一定的概率判断错误。因此,Bloom Filter不适合那些“零错误”的应用场
AI科技大本营
2018/04/26
2K0
入门 | 海量数据处理算法总结【超详解】
《大话数据结构》总结第一章 绪论第二章 算法第三章 线性表第四章 栈和队列第五章 字符串第六章 树第七章 图第八章 查找第九章 排序
第一章 绪论 什么是数据结构? 数据结构的定义:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 第二章 算法 算法的特性:有穷性、确定性、可行性、输入、输出。 什么是好的算法? ----正确性、可读性、健壮性、时间效率高、存储量低 函数的渐近增长:给定两个函数f(n)和g(n),如果存在一个整数N,使得对于所有的n>N,f(n)总是比g(n)大,那么,我们说f(n)的增长渐近快于g(n)。于是我们可以得出一个结论,判断一个算法好不好,我们只通过少量的数据是不能做出准确判断的,如果我们可以
SeanCheney
2018/04/24
1.4K0
《大话数据结构》总结第一章 绪论第二章 算法第三章 线性表第四章 栈和队列第五章 字符串第六章 树第七章 图第八章 查找第九章 排序
数据结构-概述
线性表是具有相同数据类型的n个数据元素的有限序列。 逻辑上,每个元素有且只有一个直接前驱,有且只有一个直接后继(表头表尾元素例外)
千灵域
2022/06/17
1.7K0
数据结构-概述
其他篇之操作系统——文件管理
文件管理是操作系统的功能之一,由于系统的内存有限并且不能长期存储,故平时总是把数据以文件的形式存储在外存中,需要时再将其调入内存。文件管理的主要内容有:
一半是我
2020/04/30
1.9K0
B-树和B+树的应用:数据搜索和数据库索引
定义:一棵m 阶的B-树,或者为空树,或为满足下列特性的m 叉树: ⑴树中每个结点至多有m 棵子树; ⑵若根结点不是叶子结点,则至少有两棵子树;
黄规速
2022/04/14
7450
B-树和B+树的应用:数据搜索和数据库索引
《大话数据结构》(二)
1.树(Tree)是n(n>=0)个结点的有限集。n=0时称为空树。在任意一颗非空树中:(1)有且仅有一个特定的称为根(Root)的结点;(2)当n>1时,其余节点可分为m(m>0)个互不相交的有限集T1、T2……Tm,其中每一个集合本身又是一颗树,并且称为根的子树(SubTree)
硬核项目经理
2019/08/06
1.1K0
《大话数据结构》 查找 以及一个简单的哈希表例子
第八章 查找 定义:查找就是根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素(或记录)。 8.2 查找概论 查找表(Search table):是由同一类型的数据元素构成的集合。 关键字(key):是数据元素中某个数据项的值,又称为键值。 若此关键字可以唯一的标识一个记录,则称此关键字为主关键字(Primary key)。 对于那些可以识别多个数据元素的关键字,我们称为次关键字(Secondary key)。 查找表按照操作方式来分有两大种:静态查找表和动态查找表 静态查找表(Static
xcywt
2018/03/28
2.4K0
《大话数据结构》 查找 以及一个简单的哈希表例子
数据结构与算法
除了先序遍历、中序遍历、后序遍历外,还可以对二叉树进行层序遍历。层序遍历就是从所在二叉树的根节点出发,自上而下,自左至右逐层访问树的结点的过程。
ttony0
2022/12/26
1.5K0
数据结构与算法
相关推荐
12.7 多关键字文件
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档