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

外部排序:归并排序

  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真题
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一些概念 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这...
    Winterfell_Z阅读 6,605评论 0 13
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 5,303评论 0 52
  • 1)这本书为什么值得看: Python语言描述,如果学的Python用这本书学数据结构更合适 2016年出版,内容...
    孙怀阔阅读 12,915评论 0 15
  • 树(续) 二叉树 二叉排序树 二叉排序树,又叫二叉查找树,它或者是一棵空树;或者是具有以下性质的二叉树: 若它的左...
    liuzhangjie阅读 1,245评论 0 0
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    zwb_jianshu阅读 1,429评论 0 0

友情链接更多精彩内容