大型文件排序的一种自适应算法.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
维普资讯 · 58 · ComputerEraNo.4 2008 大型文件排序的一种 自适应算法 韩荣琴 (上海工商外国语职业学院计算机系,上海 201300) 摘 要:首先介绍排序的基本思想,然后分析 了文件排序的串行、并行算法的基本特点,并设计出对于大型文件排序的一 种 自适应算法,最后给出了不同环境下的实验结果及数据分析。算法均在 Linux系统下实现。 关键词:操作系统;排序;归并;串行算法;并行算法 0引言 率主要着眼于减少外存信息读写的次数 。 排序是数据结构中的一项重要内容,特别是在程序设计 2文件排序的 自适应算法 中,排序有着很重要的应用,因此排序方法的研究是计算机工 一 些大型数据库文件的容量可能达到或超过内存容量,无 作者的重要课题之一。排序是将一个无序的数据 (或记录)序 法一次将数据全部读入内存之中,因此如何快速排序就成了难 列,重新组织成一个以关键字为序的数据序列的过程。其 目的 题,这就需要好的算法以节省空间和时间。 在于满足检索、选择 、评估数据的需要。本文的文件排序算法是 2、1算法步骤 在 Linux环境下实现的。 (1)根据 i机 内存大小对文件邂行分段 1排序 先计算出文件的长度,再计算出每一数据 (或记录)长度, 为便于讨论,首先对排序下一个确切的定义:假设含 n个 最后根据主机内存自动进行分段。从试验结果可知,进行合理 记录的序列为{R,R .,},其相应的关键字(又称为键或标志 的分段可以节省大量的运行时间。分段过大会增加内排序的时 符)序列为 {K。,K2,、..,K},需确定 1,2,、..,n的一种排列{p1P,..., 间,而分段过小又会增加对外存信息的读写次数 ,都会导致排 序总时间的增加。 P},使其相应的关键字满足如下的非递减 (或非递增)关系 l(p。≤Kp2≤…≤K ,即使序~JJ{R。,R2,..…R}成为一个按关键字排 (2)对各段排序 序的序列{Rp。,R ..,R},这样的一种操作称为排序。上述定义 分别将各段读入内存中进行内排序,并将排序后的结果存 中若K。是主关键字则排序结果惟一;否则不惟一,因为待排序列 于相应的临时文件。内排序的方法很多,在此我们使用了目前 被认为最好的一种内部排序方法——快速排序。其基本思想是 的记录 中可能存在两个或两个以上关键字相等的记录。假设 I~=Kj,且在排序前R领先与R(即i≤j),若在排序后R.仍领先 通过一趟排序将待排记录分割为独立的两部分,其中一部分记 R,则称所用的排序方法是稳定的,否则称为不稳定的排序方法。 录的关键字均比另一部分记录的关键字小 ,则可分别对这两部 排序又分为内部排序和外部排序。内部排序相对简单,当 分记录继续进行排序,以达到整个序列有序。 前常用的算法有插入排序,快速排序,选择排序 ,归并排序,基 (3)归并子文件 数排序等…,在此不作详细介绍。 通过(1),(2)两步后得到了已排好序的各段I临时子文件。将 外部排序由两个阶段组成 :首先按可用内存的大小,将外 这些II缶时文件进行外排序 ,即归并成一个数据库文件 ,并删除 II缶时文件。在调试程序的过程中发现,若II缶时文件不删除,下次 存含N个记录的文件分成若干长度为 1的子文件或子段 ,一次 读入内存并利用有效的内部排序方法对它们进行内部排序并 再运行该程序时就会发生重命名的错误,导致结果不正确。 将排序后得到的有序子文件 (归并段)重新写入外存;然后对这 2.2算法的自适应特点 算法的自适应是指程序能够根据主机的配置情况 自动确 些归并段进行逐趟归并,直至得到

文档评论(0)

yingzhiguo + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档