Python|外部排序的次数与时间的相关算法

前言

在上一次的文章中介绍了外部排序的定义以及基础实现过程,本文章是对外部排序的次数与时间的相关算法,算法逻辑性较强,需要细致的分析与理解。才能更好的掌握。

问题描述

列如:假设有一个100KB记录的磁盘文件,而当前使用的计算机一次只能对10KB记录进行内部排序,则首先利用内部排序的方法得到10个初始归并段,然后进行逐趟归并。假设“数据块”的大小为10,即每一次访问外存可以读/写10个记录。则对于100个记录,处理一遍需访问外存20次(读和写各10次)。

解决方案

3.1外部排序的次数计算,由读/写规律可得:

1)10个初始归并段需访问外存20次;

2)每进行一趟归并需访问外存20次;

3)总计访问外存 20 + 4*20 =100次。

3.2外部排序时间的计算:

公式:

外部排序总时间t = 产生初始归并段的时间m*t1+外存信息读写时间d*t2+ 内部归并所需时间s*ut3

其中:

m=待排序序列含m个初始归并段

d=外存的次数

s=归并趟[(s取大于对数的最小整数)

u=计算机一次对多少个记录进行内部排序

特别:在外部排序中t2取决于外存,远远大于t1和t3,外部排序的时间取决于读写外存的次数d。

3.3举例:

若对上述例子采用2路归并,则只需进行4趟归并。

则:外排所需总的时间t = 10*t1 + 100*t2 + 4*10*t3

结语

本文是对外部排序次数与时间相关算法的讲解,一般情况下,假设待排记录序列含 m 个初始归并段,外排时采用 k路归并,则归并趟数s=],显然,随着k的增大或m的减小,归并的趟数将减少,因此对外排而言,通常采用多路归并。k 的大小可选,但需综合考虑各种因素。

实习编辑:衡辉

稿件来源:深度学习与文旅应用实验室(DLETA)

(0)

相关推荐

  • 图解:页面替换算法

    页面替换算法 功能:当缺页中断发生,需要调入新的页面而内存已满时,选择内存当中哪个物理页面被置换. 目标:尽可能地减少页面的换进换出次数(即缺页中断的次数).具体来说,把未来不再使用的或短期内较少使用 ...

  • Python|外部排序法

    引言 外部排序法:外部排序分为独立的两部分组成:1.按可用内存大小,利用内部排序方法,构造若干个记录的有序子序列写入外存,通常称这些记录的有序子序列为 "归并段";2.通过&quo ...

  • 各省每年教师资格证考试次数和时间统计

    统计来源:中国教师资格考试网http://ntce.neea.edu.cn/html1/folder/1507/1076-1.htm 如有误请评论区指出哦~ 综合上图,各省(市区)笔试时间是每年3月和 ...

  • 57岁男子坚持吃降压药突发脑出血,医生指出服药次数、时间都不对

    57岁男子坚持吃降压药突发脑出血,医生指出服药次数、时间都不对

  • python测试开发django-20.添加创建时间DateTimeField

    前言 我们在admin后台发布一篇文章的时候,一般会有创建时间和最后更新时间这2个字段,创建时间就是第一次编辑文章的时候自动添加的,最后更新时间就是每次修改文章的内容后自动更新 在models.py建 ...

  • Python | 选择排序之简单选择排序

    引言 一听到选择排序的词第一反应都是要通过选择来排序,那么我们的第一反应是不是对的呢,我们接下来验证一下,了解一下它的定义.简单选择排序:最简单的选择方法是顺序扫描序列中的元素,记住遇到的最小元素(一 ...

  • Python入门学习需要多长时间?

    Python入门学习需要多长时间?因为Python在市场上有着非常重要的地位,越来越多的人都有学习Python的想法,也是我们进入编程世界的首选.在学习Python课程的时候,为了快速掌握相关技术,参 ...

  • 女子应聘被要求写恋爱次数及时间,老板:恋爱次数越多,情商越高

    女子应聘被要求写恋爱次数及时间,老板:恋爱次数越多,情商越高

  • Python | 选择排序之树形选择排序

    引言 选择排序里面主要讲了三个排序,分别是简单选择排序.树形选择排序.堆排序.今天这篇文章主要讲树形选择排序,树形选择排序也被称为锦标赛排序,树形选择排序运用了锦标赛的思想进行排序,树形选择排序是指首 ...

  • 自测血压的方法、步骤、注意事项及测量的次数和时间

    上期文章<[医生说]如何正确在家测血压>以专家视频采访的形式,向大家介绍了家庭自测血压的正确测量方法,这里以文字的形式详细介绍[血压计的选择].[测量血压前的准备].[测量时的注意事项]. ...