美文网首页
外部排序 || 内存放不下了= =

外部排序 || 内存放不下了= =

作者: zilla | 来源:发表于2019-11-27 01:48 被阅读0次

外部排序:归并排序

  1. 根据内存缓冲区大小,将外存上含有n个记录(n超超超大)的文件分成若干长度为h的子文件。
  2. 依次读入内存并利用内部排序算法对它们进行排序。(r个归并段,t为 internal sort时间)
  3. 排序后得到的有序子文件重新写回外存,这些有序自文件称为归并段(顺串)
  4. 对这些归并段进行逐趟归并(趟数S,每趟比较n-1次),使归并段逐渐由小到大直至得到整个有序文件。(归并路数m, 初始归并段数,IO次数 = logm r
    时间复杂度
  • S趟归并总共需要比较的次数

败者树:树形选择排序的变体

失败树
  • 运用败者树,S趟m路归并的比较次数为

    与路数m无关了!!!但并不是能无限增大m,每个缓冲区变小了

置换-选择排序

算法思想
划分不等长的归并段,归并段内部有序

归并树

归并树

最佳归并树: 结点数值为归并段长度

哈夫曼树
补0结点
补充0结点个数计算

2019真题

相关文章

  • 外部排序 || 内存放不下了= =

    外部排序:归并排序 根据内存缓冲区大小,将外存上含有n个记录(n超超超大)的文件分成若干长度为h的子文件。依次读入...

  • JAVA-排序算法

    1. 概述 排序分为内部排序和外部排序,内部排序是待排序的元素全部放在内存,并在内存中调整它们的顺序。外部排序是...

  • 算法之排序大总结

    排序分为内部排序和外部排序, 内存排序:在数字记录在内存中的排序叫做内部排序 外部排序:一次性排序的数据量很大,内...

  • 排序算法总结

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

  • 排序算法讲解

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

  • 常见的排序算法

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

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

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

  • Python经典排序算法

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

  • Swift - 常用的排序算法

    常见的排序算法 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很...

  • 八种排序算法原理及Java实现

    八种排序算法原理及Java实现 概述 排序算法分为内部排序和外部排序,内部排序把数据记录放在内存中进行排序,而外部...

网友评论

      本文标题:外部排序 || 内存放不下了= =

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