原文:外部排序---置换选择+败者树

当需要对一个大文件进行排序时,计算机内存可能不够一次性装入所有数据,解决办法是归并。归并的大概做法是将大文件分为若干段,依次读入内存进行排序,排序后再重新写入硬盘。这些排好序的片段成为顺串。然后对这些顺串进行逐躺归并,使归并段逐渐由小变大,最终使整个文件有序。要使用归并就得考虑两个问题,一个是如何生成顺串,一个是如何对顺串进行归并。 置换选择算法 先考虑如何生成顺串。我们知道,减少顺串的数量可以 ...

2016-08-22 21:03 0 3133 推荐指数:

查看详情

选择置换+败者搞定外部排序

个人认为,外部排序是我们在学习过程中接触到的一个比较重要的算法,它既包含了基本的排序算法,又考察了对文件IO以及内存的理解,还展示了最基本的程序优化思想,可以说能够写好一个外部排序,就说明基本的编程能力已经过关了。本文将对整个外部排序的过程进行详细的分析,并介绍两个经典算法,最后附上完整的程序代码 ...

Fri Aug 22 23:42:00 CST 2014 0 2462
选择置换+败者搞定外部排序

个人认为,外部排序是我们在学习过程中接触到的一个比较重要的算法,它既包含了基本的排序算法,又考察了对文件IO以及内存的理解,还展示了最基本的程序优化思想,可以说能够写好一个外部排序,就说明基本的编程能力已经过关了。本文将对整个外部排序的过程进行详细的分析,并介绍两个经典算法,最后附上完整的程序代码 ...

Tue Sep 17 06:57:00 CST 2013 3 3959
置换选择排序

置换——选择排序 土办法构造初始归并段 同时最多放两个到输入缓冲区,只能读入两块的内容,然后把这些记录在内存排序之后,在输出写回外存,这样就得到了一个初始归并段。 由于内部排序的内存工作区只能容纳6个记录(例子)。 可以用一片更大的内存区域来进行内部排序(如:可容纳18个记录) 用于 ...

Thu Jul 16 21:46:00 CST 2020 0 1029
败者

败者 多路平衡归并带来的问题 外部排序时间开销=读写外存的时间+内部排序所需时间+内部归并所需 时间 \[归并趟数S=\lceil log_kr \rceil ,归并路数k增加,归并趟数S减少,读写磁盘总次数减少 \] 使用k路平衡归并策略,选出一个最小元素需要对比关键字(k-1 ...

Thu Jul 16 21:42:00 CST 2020 0 1092
排序 & 败者 & 多路归并-学习

来来来,根据这篇文章,学一下败者吧: http://blog.csdn.net/whz_zb/article/details/7425152 一、胜者 胜者的一个优点是,如果一个选手的值改变了,可以很容易地修改这棵胜者。只需要沿着从该结点到根结点的路径修改这棵 ...

Wed Dec 07 03:49:00 CST 2016 0 4120
胜者败者

胜者败者都是完全二叉树,是树形选择排序的一种变型。每个叶子结点相当于一个选手,每个中间结点相当于一场比赛,每一层相当于一轮比赛。 不同的是,胜者的中间结点记录的是胜者的标号;而败者的中间结点记录的败者的标号。 胜者败者可以在log(n ...

Mon Nov 26 04:58:00 CST 2012 0 4243
11-1-败者-外部排序-第11章-《数据结构》课本源码-严蔚敏吴伟民版

课本源码部分 第11章 外部排序 - 败者 ——《数据结构》-严蔚敏.吴伟民版 源码使用说明 链接☛☛☛ 《数据结构-C语言版》(严蔚敏,吴伟民版)课本源码+习题集解析使用说明 课本源码合辑 链接☛☛☛ 《数据结构》课本源码合辑 习题集全 ...

Thu Jun 23 17:04:00 CST 2016 4 1412
[算法]败者

  胜者败者都是完全二叉树,是树形选择排序的一种变型。每个叶子结点相当于一个选手,每个中间结点相当于一场比赛,每一层相当于一轮比赛。   不同的是,胜者的中间结点记录的是胜者的标号;而败者的中间结点记录的败者的标号。   胜者败者可以在log(n)的时间内找到最值。任何一个叶子结点 ...

Tue Jun 18 17:37:00 CST 2013 0 4877
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM