第二章_排序_2019-03-13

2019-03-13  本文已影响0人  雨住多一横

经典的排序算法

排序算法的空间复杂度:

排序算法的稳定性

补充说明

高频题

外部排序

本段引自原文
在内存中进行的排序称为内部排序,而在许多实际应用中,经常需要对大文件进行排序,因为文件中的记录很多,信息量庞大,无法将整个文件拷贝进内存进行排序。因此,需要将带排序的记录存储在外存上,排序时再把数据一部分一部分的调入内存进行排序,在排序中需要多次进行内外存的交互,对外存文件中的记录进行排序后的结果仍然被放到原有文件中。这种排序方法就称外部排序。
由于外存设备的不同,外部排序通常分为磁盘文件排序和磁带文件排序。磁盘是直接存取设备,磁带是顺序存取设备。
文件通常是按块存储在磁盘上,操作系统也是按块对磁盘上的信息进行读写的。因为磁盘读写的机械运动所需的时间远远超过内存计算的时间。因此,在外部排序过程中的时间代价主要考虑访问磁盘的次数,即i/o次数。
外部排序通常采用归并排序:它包括两个相对独立的阶段:首先,根据内存缓存区的大小,将外存上含有n个记录的文件分割成若干长度为 h 的子文件,依次的读入内存并利用有效的内部排序方法对他们进行排序,并将排序后得到的有序子文件重新写回外存,通常称这些有序子文件为归并段或者顺串。
然后,对这些归并段进行逐趟归并,使得归并段(有序的子文件)逐渐由小到大,直至得到整个有序文件为止。
之后还可以采用多路平衡归并和败者树,置换-选择排序,最佳归并树进行处理,这里就不一一展开了。

上一篇 下一篇

猜你喜欢

热点阅读