数据结构之文件与磁盘排序
我们的课程内容对这部分并不做要求,所以我只简单的复习一些术语,概念和轮换过程,不做代码部分的描述。
概念
文件:是性质相同的记录的集合。记录是文件中存取的基本单位,数据项是文件可使用的最小单位,数据项有时称字段或者属性。
·逻辑结构是一种线性结构。
·操作:检索和维护。并有实时和批量处理两种处理方式。
·存储结构是指文件在外存上的组织方式。
·基本的组织方式有:顺序组织、索引组织、散列组织和链组织。
比如数组,索引表,散列表,链表组织方式。
·常用的文件组织方式:顺序文件、索引文件、散列文件和多关键字文件。
评价一个文件组织的效率,是执行文件操作所花费的时间和文件组织所需的存储空间。
检索功能的多寡和速度的快慢是衡量文件操作质量的重要标志。
顺序文件:是指按记录进入文件的先后顺序存放、其逻辑顺序和物理顺序一致的文件。主关键字有序称顺序有序文件,否则称顺序无序文件。
一切存储在顺序存储器(比如磁带)上的文件都只能顺序文件,只能按顺序查找法存取。
顺序文件的插入、删除和修改只能通过复制整个文件实现。
索引文件:通常是在主文件之外建立一张索引表指明逻辑记录和物理记录之间一一对应的关系,它和主文件一起构成索引文件。
索引非顺序文件中的索引表为稠密索引。索引顺序文件中的索引表为稀疏索引。
若记录很大使得索引表也很大时,可对索引表再建立索引,称为查找表。是一种静态索引。
散列文件:是利用散列存储方式组织的文件,亦称为直接存取文件。
·优点是:文件随机存放,记录不需要排序;插入删除方便;存取速度快;不需要索引区,节省存储空间。
·缺点是:不能进行顺序存取,只能按关键字随机存取,且询问方式限地简单询问,需要重新组织文件。
多重表文件:对需要查询的次关键字建立相应的索引,对相同次关键字的记录建一个链表并将链表头指针、长度、次关键字作为索引表的索引项。
倒排表:次关键字索引表称倒排表,主文件和倒排表构成倒排文件。
外部排序:大文件排序,待排序的记录存储在外存储器上,在排序过程中需要经过多次的内、外存之间的交换。外部排序可分为磁盘文件排序和磁带文件排序。其基本方法都是归并。
外部排序的知识点组要包括:
多路平衡归并、置换-选择排序、最佳归并树
习题部分我会另开文章写。
- Pandas学习总结——1. 基础操作(文件读写)、数据结构(Series、DataFrame)、常用基本函数、数据排序...
- 运用递归读取所有磁盘数据(文件夹名称和文件名称),形成树桩结构
- 编程珠玑学习笔记(1):简单磁盘文件数据排序
- 数据结构实验之排序八:快速排序
- SDUT3401->数据结构实验之排序四:寻找大富翁
- 【数据结构与算法】treemap应用 排序
- 数据结构与算法:排序
- 数据结构(C++版)——三种简单排序算法
- 数据结构6.3外部排序
- sdutacm-数据结构实验之排序八:快速排序
- 数据结构实验之排序四:寻找大富翁
- java:大数据文件写入,读取,分割,排序,合并
- [源码和文档分享]磁盘盘符隐藏并访问隐藏磁盘的文件数据
- 数据结构实验之排序四:寻找大富翁(堆排序)
- 数据结构实验之排序二:交换排序 oj
- 数据结构与算法--十大经典算法--归并排序
- 数据结构——排序(一)
- 数据结构:快速排序优化思路
- PHP/Shell大文件数据统计并且排序
- 数据结构实验之排序二:交换排序