有时,待排序的文件很大,计算机内存不能容纳整个文件,这时候对文件就不能使用内部排序了(这里做一下说明,其实所有的排序都是在内存中做的,这里说的内部排序是指待排序的内容在内存中就可以完成,而外部排序是指待排序的内容不能在内存中一下子完成,它需要做内外存的内容交换),外部排序常采用的排序方法也是 ...
在网上找了不少的资料,不够全面也不够清楚,这里组合和修改一下两份资料,将外部排序中过程详细的介绍下 参考网址 http: www.cnblogs.com songQQ archive .htmlandhttp: chenkegarfield.blog. .com blog static 一 定义问题 外部排序指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存,需要在内 ...
2012-08-29 20:24 5 21599 推荐指数:
有时,待排序的文件很大,计算机内存不能容纳整个文件,这时候对文件就不能使用内部排序了(这里做一下说明,其实所有的排序都是在内存中做的,这里说的内部排序是指待排序的内容在内存中就可以完成,而外部排序是指待排序的内容不能在内存中一下子完成,它需要做内外存的内容交换),外部排序常采用的排序方法也是 ...
外部排序(归并排序) 定义 基本思想及步骤 步骤 1.思想 一 2.思想 二 实现操作 1.二路归并 1.1.c 递归 非递归 ...
如果数据量过大,超过最大的内存容量,那么一次性将所有数据读入内存进行排序是不可行的。 例如,一个文件每一行存了一个整数,该文件大小为10GB,而内存大小只有512M,如何对这10GB的数据进行排序呢? 外部排序就是为了解决这种问题的。 思路: 外部排序的思路是,将超大文件分成 ...
外部排序: 一、定义问题 外部排序指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存,需要在内存和外部存储器之间进行多次数据交换,以达到排序 整个文件的目的。外部排序最常用的算法是多路归并排序,即将原文件分解成多个能够一次性装入内存的部分,分别 ...
定义: 1、按可用内存大小,将外存上的记录文件分成若干个归并段 (segments) 2、依次读入内存并利用有效的外部排序方法进行排序 3、将排序后的有序子文件写入外存 实现: 利用败者树进行k路归并,使得每次归并在k个记录中选出最小记录仅需进行次(二叉树的深度)比较,从而使总 ...
个人认为,外部排序是我们在学习过程中接触到的一个比较重要的算法,它既包含了基本的排序算法,又考察了对文件IO以及内存的理解,还展示了最基本的程序优化思想,可以说能够写好一个外部排序,就说明基本的编程能力已经过关了。本文将对整个外部排序的过程进行详细的分析,并介绍两个经典算法,最后附上完整的程序代码 ...
从阿拉伯传到中国,告诉你的中国朋友要进行一个外部排序,你的中国朋友也许会傻: 上面是什么?乱码. 你也 ...
当需要对一个大文件进行排序时,计算机内存可能不够一次性装入所有数据,解决办法是归并。归并的大概做法是将大文件分为若干段,依次读入内存进行排序,排序后再重新写入硬盘。这些排好序的片段成为顺串。然后对这些顺串进行逐躺归并,使归并段逐渐由小变大,最终使整个文件有序。要使用归并就得考虑两个问题,一个是 ...