- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构与算法分析A Practical Introduction toData Structures and Algorithm Analysis陈 星 第8章 文件管理和外排序 外排序:因数据量太大,不能将它们同时放在主存中。因此需要将全部数据放入磁盘,每次选择部分数据到主存进行处理。 8.1 主存储器和辅助存储器 主存储器:随机访问存储器(RAM)。 辅助存储器:硬盘、软盘和磁带等。 主存储器和辅助存储器的比较 主存储器 辅助存储器 价格 昂贵(高两个数量级) 便宜 存储时间 易失 长期 便携性 不具备 具备 读写速度 快(10~100万倍) 慢 容量 小 大 尽可能减小对磁盘的访问次数 原则 减小磁盘访问次数的方法 尽可能少(最好一次)的访问次数得到所需数据。 每次磁盘访问得到更多的数据,减少将来的访问需要。 一种实用的方法:压缩存储在磁盘中的信息。 原理: 用增加的CPU时间(压缩和解压数据)换 取缩短的磁盘访问时间。 问题:不允许随机访问被压缩文件的一部分。 8.2 磁盘 磁盘:直接访问存储设备。磁带:顺序访问存储设备。 盘片、磁道、柱面、扇区 盘片以恒定速率转动 扇区 每个磁道分为多个扇区。 每个扇区有相同的数据量。一个扇区是一次读出或写入的最小数据量。 硬盘中读写数据的步骤: 寻道:移动硬盘的I/O磁头,定位到包含数据的磁道。(慢,占据读写数据的大部分时间) 等待包含数据的扇区旋转到磁头下面。 读取或写入一个扇区的数据。 安排扇区的交错法: 概念: 引用的局部性:如果读出文件的一个扇区,很可能就要读出文件的下一个扇区。(假设) 簇:多个扇区组成,为文件分配的最小单位,大小由操作系统所定。 文件分配表:记录哪些簇(扇区)属于哪一个文件。 范围:一组物理上相连的簇。 内部碎片:由于数据没有填满一个扇区或一个簇而浪费的存储空间。 8.2.2 磁盘访问代价 访问磁盘中信息的主要代价一般是寻道时间。 寻道时间依赖于磁头当前所在的磁道与将要访问的目标磁道之间的距离,因此实际寻道时间差别很大。 寻道时间可参考的两个参数: 磁道-磁道代价:磁头从一个磁道移到相邻磁道的最短时间。 一次随机访问的平均寻道时间。 其它磁盘访问代价: 等待目标扇区旋转到磁头下的时间。 数据读/写时间。 8.3 缓冲区和缓冲池 例8.1,读取数据的时间代价: 一个磁道(256个扇区): 一个扇区(512个字节):9.5+11.1/2+(1/256)×11.1=15.1ms 一个字节: 9.5+11.1/2 = 15.05ms 读取的数据量对读取时间影响不大。因此磁盘驱动器每次都是读入或写入整个扇区的数据。数据暂放在主存中,称缓冲或缓存。 缓冲:从磁盘中取出多余数据,以满足将来的请求。缓冲技术可以减少数据从磁盘中读取的次数。 主存中通常建有多个输入缓冲区和输出缓冲区,缓冲区合起来称为缓冲池。 8.3 缓冲区和缓冲池 当缓冲池填满后,替换缓冲区的方法: 先进先出法。 最不频繁使用法。 最近最少使用法。 虚拟存储技术:将磁盘扩展为主存的一部分。 8.4 程序员的文件视图 处理磁盘文件中记录的方式: 随机访问。 顺序访问。 8.5 外部排序 外部排序的特点: 只能先将一些记录从磁盘中读出,进行排序,再将记录写回磁盘。 主要目标:尽量减少磁盘访问。 在主存内的内部排序比读写磁盘的时间少。 顺序访问磁盘中数据块比随机访问更有效。但高效率的顺序访问要求: 文件应填充到连续的磁道中。 顺序访问过程中,磁盘的I/O磁头要始终在这个文件上,因此不同时处理两个文件。 只对关键码排序,建立索引文件,而不是对整个记录排序。 8.6 外部排序的简单方法 内部排序算法通常不适用于外部排序,如快速排序。 一种较好的外部排序算法:改进的归并算法 将被排序的子序列称为顺串(run) 排序过程(P181) 对有n条记录的文件,外部归并排序需要logn趟扫描,即每条记录进行logn次磁盘读写。 对外部归并排序算法的改进: 对小的顺串不做归并排序。即对读入主存的数据做内部排序,并读入尽可能多的数据,减小归并排序的趟数。 每一趟扫描归并多个顺串,即多路归并技术。 所有好的外部排序算法都是基于: 把文件分成大的初始顺串(读入更多记录到主存,执行内部排序)。 把所有顺串归并在一起,形成一个已排序的文件。 8.7 置换选择排序 堆排序算法的一个微小变体。 如果分配给供内部排序数组
您可能关注的文档
- 基于Struts2旅游信息管理系统的设计及实现.doc
- 第十一章 计算机系统性能评价.ppt
- 高中生物课件4.1 转基因生物安全性.ppt
- LOL所有英雄皮肤售价和原画.pdf
- 第八章 光纤光缆专业英语(Felicia).pdf
- 第三章 2014会计继续教育答案.doc
- 红旗LINUX案例教程第4节.ppt
- 第五章 2016年中央财经大学投资学801经济学综合考研辅导班招生简章.pdf
- 产业结构调整及地方政府支持政策的实施——以佛山陶瓷产业升级案例为例.doc
- 第7节 设备管理(第2讲).pdf
- 口才大比拼 主题班会 PPT课件.pptx
- 反恐与警惕主题班会PPT课件.pptx
- 急性感染的抗生素治疗.pptx
- 国家安全网络教育.pptx
- 法治教育与公民意识主题班会PPT课件.pptx
- 宣传教育2024年中办国办《中央生态环境保护督察整改工作办法》课件(PPT).pptx
- 银行行业:结构性货币政策工具投放规模前瞻-250428-广发证券-13页.pdf
- 非银金融行业:政策取向更加积极有为,关注板块估值修复空间-250427-广发证券-11页.pdf
- 固定收益专题报告:卖方观点是利率的先行指标吗?-250429-华安证券-12页.pdf
- 总量“创”辩第101期:确定性的基本盘-250429-华创证券-11页.pdf
文档评论(0)