Python|外部排序法

Posted 算法与编程之美

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python|外部排序法相关的知识,希望对你有一定的参考价值。

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。

引言

外部排序法:外部排序分为独立的两部分组成:1.按可用内存大小,利用内部排序方法,构造若干个记录的有序子序列写入外存,通常称这些记录的有序子序列为 “归并段”;2.通过“归并”,逐步扩大(记录的)有序子序列的长度,直至外存中整个记录序列按关键字有序为止。

问题描述

列如:假设有一个100KB记录的磁盘文件,而当前使用的计算机一次只能对10KB记录进行内部排序,则首先利用内部排序的方法得到10个初始归并段,然后进行逐趟归并。

解决方案

1.首先通过10次内部排序,把10组数据排好序,得到初始的10个归并段R1-R10

2.其次对这10个归并段使用2-路平衡归并排序(即两两归并)

2.1第一次归并

2.2第二次归并

2.3第三次归并

2.4第四次归并

结语

本文是对外部排序算法的简单讲解,以插画的形式,便于读者的理解。后续将讲解外部排序的次数与时间的相关算法。

作者:彭诚

实习编辑:王晓姣

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

以上是关于Python|外部排序法的主要内容,如果未能解决你的问题,请参考以下文章

九大排序算法(Python 语言实现)

Python算法教程第三章知识点:求和式递归式侏儒排序法和并归排序法

经典排序算法和Python详解之选择排序和二元选择排序

Python中的排序---冒泡法

Python基础知识之排序法

冒泡排序 和 选择排序的 区别 python