Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >11.2 外部排序的方法

11.2 外部排序的方法

作者头像
小林C语言
发布于 2019-07-12 09:22:30
发布于 2019-07-12 09:22:30
4550
举报

01

外部排序的方法

1、外部排序基本上由两个相对独立的阶段组成。

2、首先,按可用内存大小,将外存上含n个记录的文件分成若干长度为l的子文件或段(segment),依次读入内存并利用有效的内部排序方法对它们进行排序,并将排序后得到到有序子文件重新写入外存,通常称这些有序子文件为归并段或顺串(run)。

3、然后,对这些归并段进行逐趟归并,使归并段(有序的子文件)逐渐由小至大,直至得到整个有序文件为止。

4、一般情况下,外部排序所需总的时间=内部排序(产生初始归并段)所需的时间+外存信息读写的时间+内部归并所需的时间。

如果您觉得本篇文章对您有作用,请转发给更多的人,点一下好看就是对小编的最大支持!

有时候,正是那些意想不到之人,成就了无人能成之事。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 C语言入门到精通 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
序列(两)密钥索引、桶排序、位图、失败者树(照片详细解释–失败者树)…
以上排序算法都有一个性质:在排序的终于结果中,各元素的次序依赖于它们之间的比較。我们把这类排序算法称为比較排序。
全栈程序员站长
2022/07/05
3710
序列(两)密钥索引、桶排序、位图、失败者树(照片详细解释–失败者树)…
1.4 算法和算法分析
1、算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。
小林C语言
2019/07/12
5100
1.4 算法和算法分析
11.2 外部排序与选择排序
2、首先,按可用内存大小,将外存上含n个记录的文件分成若干长度为l的子文件或段(segment),依次读入内存并利用有效的内部排序方法对它们进行排序,并将排序后得到到有序子文件重新写入外存,通常称这些有序子文件为归并段或顺串(run)。
小林C语言
2020/12/13
7660
11.2 外部排序与选择排序
10.1 C文件有关的基本知识
(1)程序文件。包括源程序文件(后缀为.c)、目标文件(后缀为.obj)、可执行文件(后缀为.exe)等。这种文件的内容时程序代码。
小林C语言
2019/07/12
5130
10.1 C文件有关的基本知识
10.5 归并排序
3、归并的实现无论是顺序存储结构还是链表存储结构,都可在O(m+n)的时间量级上实现。
小林C语言
2019/07/12
2940
软件设计(十二)数据结构(下)
顺序查找 成功的平均查找长度为 (n+1)/2,也就是说查找的平均次数约为表长的一半,优点就是算法简单适应面广,对查找的表结构没什么要求,缺点就是查找长度太长效率低下。
用户9919783
2023/02/28
2870
软件设计(十二)数据结构(下)
什么是外部排序?
在内存中进行的排序是内部排序,而在许多应用中,经常需要对大文件进行排序,因为文件中的记录很多、信息量庞大,无法将整个文件复制进内存中进行排序。因此,需要将待排序的记录存储在外存中,排序时再把数据一部分一部分地调入内存进行排序,在排序过程中需要多次进行内存和外存之间地交换。这种排序方法就称为外部排序。
跋扈洋
2021/08/18
8400
Python|外部排序法
外部排序法:外部排序分为独立的两部分组成:1.按可用内存大小,利用内部排序方法,构造若干个记录的有序子序列写入外存,通常称这些记录的有序子序列为 “归并段”;2.通过“归并”,逐步扩大(记录的)有序子序列的长度,直至外存中整个记录序列按关键字有序为止。
算法与编程之美
2021/07/09
7730
Python|外部排序法
外部排序的方法
在实际应用中,由于外存设备的不同,通常又可分配磁盘文件排序和磁带文件排序两大类。磁带排序和磁盘排序的基本步骤相类似,主要的不同之处在于初始归并段在外存介质中的分布方式,磁盘是直接存储设备,磁带是顺序存储设备。下面以磁盘为例进行说明。
week
2018/08/24
1.1K0
外部排序快速入门详解:基本原理,败者树,置换-选择排序,最佳归并树
注意:在建立基本的分块之前,外存的每个小分块要先进行内部排序,保证这16个分块内部是有序的。
小徐在进步
2024/10/11
4050
外部排序快速入门详解:基本原理,败者树,置换-选择排序,最佳归并树
排序(Sort) 原
排序是计算机程序设计中的一种重要操作。如果数据能够根据某种规则排序,就能大大挺高数据处理的算法效率。
云飞扬
2019/03/12
1K0
排序(Sort)
                                                                            原
数据结构–排序专题
算法基本思想 将待排序的记录插入到已排序的子文件中去,使得插入之后得到的子文件仍然是有序子文件。插入一个记录,首先要对有序子文件进行查找,以确定这个记录的插入位置。按查找方式的不同,插入排序又可以分为线性插入排序和折半插入排序,前者使用顺序查找,后者使用折半查找。
用户7267083
2022/12/08
4880
数据结构–排序专题
数据结构之内外排序
插入排序是在一个已经有序的小序列的基础上,一次插入一个元素。当然,刚开始这个有序的小序列只有1个元素,就是第一个元素。比较是从有序序列的末尾开始,也就是想要插入的元素和已经有序的最大者开始比起,如果比它大则直接插入在其后面,否则一直往前找直到找到它该插入的位置。如果碰见一个和插入元素相等的,那么插入元素把想插入的元素放在相等元素的后面。这样,相等元素的前后顺序没有改变,从原无序序列出去的顺序就是排好序后的顺序,所以插入排序是稳定的。
用户2417870
2019/12/02
3030
7.7.1外部排序
内部排序都是在内存中进行的,而在实际应用中,经常需要对大文件进行排序,因为文件中的记录很多、信号量庞大,无法将整个文件拷贝进内存中进行排序。因此,需要将待排序的记录存储在外存上,排序时再将数据一部分一部分的调入内存进行排序。在排序过程中需要多次进行内存和外存之间的交换,对外存文件中的记录进行排序后的结果仍然被存放到原有文件中。这种排序方法就称为外部排序。
week
2018/08/24
5240
1.2 基本概念和术语
1、数据:是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的程序。
小林C语言
2019/07/12
3480
1.2 基本概念和术语
外部排序
当我们要排序的文件太大以至于内存无法一次性装下的时候,这时候我们可以使用外部排序,将数据在外部存储器和内存之间来回交换,以达到排序的目的
用户1260737
2018/07/30
1.1K0
外部排序
【数据结构阅览室】初阶数据结构之排序
所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。
小文要打代码
2024/10/16
880
【数据结构阅览室】初阶数据结构之排序
数据结构基础温故-7.排序
排序(Sorting)是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为按关键字“有序”的记录序列。如何进行排序,特别是高效率地进行排序时计算机工作者学习和研究的重要课题之一。排序有内部排序和外部排序之分,若整个排序过程不需要访问外存便能完成,则称此类排序为内部排序,反之则为外部排序。本篇主要介绍插入排序、交换排序、选择排序和归并排序这几种内部排序方法。
Edison Zhou
2018/08/20
5080
数据结构基础温故-7.排序
9.2 静态查找表
1、顺序查找(Sequential Search)的查找过程为:从表中最后一个记录开始,逐个进行记录的关键字和给定值的比较,若某个记录的关键字和给定值比较相等,则查找成功,找到所查记录。
小林C语言
2019/07/12
5030
疯狂java笔记之常用的内部排序
在计算机程序开发过程中,经常需要一组数据元素(或记录)按某个关键字进行排序,排序完成的序列可用于快速查找相关记录。
HelloJack
2018/08/28
7880
疯狂java笔记之常用的内部排序
相关推荐
序列(两)密钥索引、桶排序、位图、失败者树(照片详细解释–失败者树)…
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档