数据结构与算法课件第8章讲述.ppt

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构与算法课件第8章讲述

数据结构与算法分析 A Practical Introduction to Data Structures and Algorithm Analysis 陈 星 第8章 文件管理和外排序 主存储器和辅助存储器的比较 减小磁盘访问次数的方法 尽可能少(最好一次)的访问次数得到所需数据。 每次磁盘访问得到更多的数据,减少将来的访问需要。 一种实用的方法:压缩存储存储在磁盘中的信息。 原理: 用增加的CPU时间(压缩和解压数据)换 取缩短的磁盘访问时间。 问题:不允许随机访问被压缩文件的一部分。 扇区 概念: 引用的局部性:如果读出文件的一个扇区,很可能就要读出文件的下一个扇区。(假设) 簇:多个扇区组成,为文件分配的最小单位,大小由操作系统所定。 文件分配表:记录哪些簇(扇区)属于哪一个文件。 范围:一组物理上相连的簇。 内部碎片:由于数据没有填满一个扇区或一个簇而浪费的存储空间。 8.2.2 磁盘访问代价 * * 外排序:因数据量太大,不能将它们同时放在主存中。因此需要将全部数据放入磁盘,每次选择部分数据到主存进行处理。 8.1 主存储器和辅助存储器 主存储器:随机访问存储器(RAM)。 辅助存储器:硬盘、软盘和磁带等。 大 小 容量 慢 快(10~100万倍) 读写速度 具备 不具备 便携性 长期 易失 存储时间 便宜 昂贵(高两个数量级) 价格 辅助存储器 主存储器 尽可能减小对磁盘的访问次数 原则 8.2 磁盘 磁盘:直接访问存储设备。磁带:顺序访问存储设备。 盘片、磁道、柱面、扇区 盘片以恒定速率转动 每个磁道分为多个扇区。 每个扇区有相同的数据量。一个扇区是一次读出或写入的最小数据量。 硬盘中读写数据的步骤: 寻道:移动硬盘的I/O磁头,定位到包含数据的磁道。(慢,占据读写数据的大部分时间) 等待包含数据的扇区旋转到磁头下面。 读取或写入一个扇区的数据。 安排扇区的交错法: 访问磁盘中信息的主要代价一般是寻道时间。 寻道时间依赖于磁头当前所在的磁道与将要访问的目标磁道之间的距离,因此实际寻道时间差别很大。 寻道时间可参考的两个参数: 磁道-磁道代价:磁头从一个磁道移到相邻磁道的最短时间。 一次随机访问的平均寻道时间。 其它磁盘访问代价: 等待目标扇区旋转到磁头下的时间。 数据读/写时间。 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次磁盘读写。

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档