网站大量收购独家精品文档,联系QQ:2885784924

数据结构C第7章-03版.ppt

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

表排序分析 记录移动总数 一个环有k个记录,则需移动k+1,记录移动总次数为 任一记录不会属于两个环,所以 总计算时间 O(nm). n为记录数,m为一个记录移动时间 内排序总结 排序方法比较 方法 最差 平均 插入排序 堆排序 归并排序 快速排序 排序方法的平均时间 时间单位为:毫秒 平均时间曲线 (毫秒) 外部排序 (1) 需要排序的表很大,无法全部装入内存,因此也就不能使用内部排序方法。 外存储器与内存储器相比,优点是: 价格较低 永久的存储能力 缺点: 访问外存储器上的数据比访问内存要慢5~6个数量级 主存储器与外部存储器 我们假设表或文件存储在磁盘上。 对于磁盘来讲,影响读/写时间的因素有3个: 寻道时间: 读/写磁头移至相应的柱面所需的时间 延迟 读/写磁头移至正确的扇区所需的时间 传输时间 从磁盘或向磁盘传送一个数据块所需的时间 要求我们在开发系统时必须考虑如何使外存访问次数达到最少。 磁盘(disc) 磁盘存储器通常称为直接存取设备,或随机存取设备,它访问外存上文件的任一记录的时间几乎相同。 磁盘存储器可以顺序存取,也可以随机存取。 目前使用较多的是活动臂硬盘组:若干盘片构成磁盘组,它们安装在主轴上,在驱动装置的控制下高速旋转。除了最上面一个盘片和最下面一个盘片的外侧盘面不用以外,其他每个盘片上下两面都可存放数据。将这些可存放数据的盘面称为记录盘面。 主轴 盘片 活动臂 (回转臂) 读写磁头 磁道 柱面 每个记录盘面上有很多磁道,数据就存放在这些磁道上。它们在记录盘面上形成一个个同心圆。 每个记录盘面都有一个读写磁头。所有记录盘面的读写磁头都安装在同一个动臂上,随动臂向内或向外做径向移动,从一个磁道移到另一个磁道。 任一时刻,所有记录盘面的读写磁头停留在各个记录盘面的半径相同的磁道上。运行时,由于盘面做高速旋转,磁头所在的磁道上的数据相继在磁头下,从而可以读写数据 各个记录盘面上半径相同的磁道合在一起称为柱面。动臂的移动实际上是将磁头从一个柱面移动到另一个柱面上。 一个磁道可以划分为若干段,称为扇区,一个扇区就是一次读写的最小数据量。这样,对磁盘存储器来说,从大到小的存储单位是:盘片组、柱面、磁道和扇区。 对磁盘存储器进行一次存取所需时间: 当有多个盘片组时,要选定某个盘片组。这是由电子线路实现的,速度很快。 选定盘片组后再选定某个柱面,并移动动臂把磁头移到此柱面上。这是机械动作,速度较慢。这称为“寻查(seek)”。 选定柱面后,要进一步确定磁道,即确定由哪个读写磁头读写,由电子线路实现。 ‘确定磁道后,还要确定所要读写数据在磁盘上的位置(如在哪一个扇区)。这实际上就是在等待要读写的扇区转到读写磁头下面。这是机械动作。这段时间一般称为旋转延迟(rotational delay)时。 真正进行读写时间。 在磁盘组上一次读写的时间主要为: tio=tseek+tlatency+trw 其中,tseek是平均寻查时间,是把磁头定位到要求柱面所需时间,这个时间的长短取决于磁头移过的柱面数。tlatency是平均等待时间,是将磁头定位到指定块所需时间。trw是传送一个扇区数据所需的时间。 在MS-DOS系统中,多个扇区集结成组,称为簇。簇是文件分配的最小单位,其大小由操作系统决定。在UNIX系统中不使用簇,文件分配的最小单位和读写的最小单位是一个扇区, 称为一个块(block)。 磁盘一次读写操作访问一个扇区,称为访问“一页”(page)或“一块”(block),又称为“一次访外”。 为了实施磁盘读写操作,在内存中需要开辟一些区域,用以存放需要从磁盘读入的信息,或存放需要写出的信息。这些内存区域称为缓冲区)。多数操作系统至少设置两个缓冲区,一个为输入缓冲区;一个为输出缓冲区。 缓冲区(buffer) 例如在从磁盘向内存读入一个扇区的数据时,数据被存放到输入缓冲区,如果下次需要读入同一个扇区的数据,就可以直接从缓冲区中读取数据,不需要重新读盘。 缓冲区大小应与操作系统一次读写的块的大小相适应,这样可以通过操作系统一次读写把信息全部存入缓冲区中,或把缓冲区中的信息全部写出到磁盘。 如果缓冲区大小与磁盘上的块大小不适配,就会造成内存空间的浪费。 缓冲区的构造可以看作一个先进先出的队列。 外部排序(2) 最常用的外部排序方法是归并排序。 例 7.12 P306 run1 run2 run3 run4 run5 run6 每个顺串由3块组成 归并6个顺串 ru

文档评论(0)

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

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

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档