美文网首页
外部排序思想

外部排序思想

作者: yingtaomj | 来源:发表于2017-04-30 20:13 被阅读99次

基本思想:将外部数据分成若干份,分别移动到内存进行排序后输出。再归并排序。
链接1:http://blog.csdn.net/jeason29/article/details/50474772
优化:

  • 增设一个缓冲buffer,加速从文件到内存的转储
  • 流水线,并行实现,会引发资源冲突,因此将内存分为三份
  • 最好不要用快速排序,因为速度不稳定,会影响流水线的效率
  • 归并时候的优化:在内存中用堆表示读取进来的数,复杂度由O(n)降为O(logn)

链接2:http://blog.csdn.net/jxq0816/article/details/52487669
访问外存次数的计算:

一个含有2000个记录的文件,每个磁盘可容纳250个记录,则该文件包含8个磁盘块。然后对该文件作二路归并排序,每次往内存读入两个磁盘块,排序后再写回磁盘。把内存工作区等分为3个缓冲区。其中的两个为输入缓冲区。一个为输出缓冲区,在内存中利用简单二路归并merge函数实现二路归并。

每一趟对全部文件的处理需要8进8出,即读写16次。
其后有三趟归并(log2 8=3)。
故上述二路归并排序的总时间为:4*16=64。

增大归并路m,或减少初始归并段个数r,都能降低读写次数。

相关文章

  • 外部排序思想

    基本思想:将外部数据分成若干份,分别移动到内存进行排序后输出。再归并排序。链接1:http://blog.csdn...

  • 数据结构01-常规排序算法

    第一章 常规排序算法 第一章 常规排序算法一、排序的基本概念排序内部排序与外部排序排序的稳定性二、冒泡排序算法思想...

  • 插入排序

    内部排序:排序期间元素全部存放在内存中外部排序:排序期间元素无法全部同时放在内存中 插入排序 基本思想:每次将一个...

  • 排序算法总结

    排序算法 排序算法可以分为内部排序和外部排序 内部排序:数据记录在内存中进行排序。 外部排序:排序的数据很大,排序...

  • 排序算法讲解

    排序方法:排序主要包含内部排序和外部排序。内部排序(简称内排序),是指所有待排序内容都存储在内存的排序。外部排序(...

  • 八大排序算法

    排序分类:内部排序、外部排序 外部排序 大文件的排序,即待排序的记录存储在[外存储器]26993)上,待排序的文件...

  • 排序——外部排序

    外部排序:指的是待排序记录的数量很大,以致内存一次不能容纳全部记录,在排序过程中尚需对外存进行访问的排序过程。 快...

  • 常见的排序算法

    概述 排序分为内部排序和外部排序: 内部排序:数据记录在内存中进行排序 外部排序:排序的数据很大,一次不能容纳全部...

  • 几种常用的排序算法 回顾

    0. 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一...

  • Python经典排序算法

    排序:内部和外部 内部排序:数据记录在内存中进行排序。外部排序:排序的数据很大,一次不能容纳全部的排序记录,在排序...

网友评论

      本文标题:外部排序思想

      本文链接:https://www.haomeiwen.com/subject/ksvxtxtx.html