【每天学一点 - 算法篇 - 排序 - 插入排序】
【每天学一点 - 算法篇 - 排序 - 希尔排序】
【每天学一点 - 算法篇 - 排序 - 堆排序】
【每天学一点 - 算法篇 - 排序 - 归并排序】
【每天学一点 - 算法篇 - 排序 - 快速排序】
【每天学一点 - 算法篇 - 排序 - 桶排序】
文章目录
系列文章目录前言一、什么是外部排序二、外部排序原理
1、思路2、示例3、抽象 总结
前言
其实这两天还看了不相交集啊,图论也看了一点,但是写出来好难啊,还是老实写外部排序吧
一、什么是外部排序
排序已经学的差不多了,桶排序已经涉及到特殊情形下了,
那还有什么可挖掘的呢,嗯,那就只能是到实战环节了。
常规内存的排序,都采用前面说的排序就足矣,
但是
如果是超大数据量,内存已经存不下了呢,
这时候数据通常会存在磁带上,
因为磁带上的元素只能被顺序访问
这时候就用上了外部排序,
先将数据储存在另外的其他(外部)磁盘上,
再将数据导回来,在这个过程中进行排序,
就是所谓的外部排序了
二、外部排序原理 1、思路
通过增加外部储存空间换取让数组可以完成排序,
增加空间,增加空间,这时候想到空间换时间的归并排序,
归并排序将小的有序数组合并为大数组时候的合并方式,
这种合并两个排序过的数组是非常简单的操作,
几乎不需要内存,非常适合上面提到的场景。
将数组在内存中排序
内存排序后依次复制到外部数组
通过归并算法将数字反复在数组间排序
总结
其实排序还有冒泡排序,选择排序,这都属于跟插入排序一个量级,就不单独再磨蹭篇章了,后面应该是设计算法的一些思路,比如前面提到的分治,或者贪心啊,什么什么的。



