- 1、本文档共102页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
外部排序过程主要分为两个阶段: 第一个阶段:按内存大小将输入文件划分为若干段,用某种内排序方法对各段进行排序。初始归并段或初始顺串 (Run)。当它们生成后就被写到外存中去。 第二个阶段:初始归并段加以归并,一趟趟地扩大归并段和减少归并段个数,直到最后归并成一个大归并段(有序文件)为止。 示例:含4500个记录的输入文件。内存至多可容纳750个记录的计算机。磁盘每块可容纳250个记录,全部记录可存储在 4500 / 250=18 个块中。 内存中恰好能存3个块的记录。 第一阶段,把18块记录,每3块一组,读入内存。利用某种内排序方法进行内排序, 形成初始归并段, 再写回外存。 第二阶段,得到6个初始归并段。然后一趟一趟进行归并排序。 两路归并排序的归并树 R1 750 R2 750 R3 750 R4 750 R5 750 R6 750 初始 归并段 R12 1500 R34 1500 R56 1500 R1234 3000 R123456 4500 第一趟 归并结果 第二趟 归并结果 第三趟 归并结果 外部排序的优化思路: 目标是减少总读写磁盘次数 通过增大归并路数,减少归并趟数实现 9.3 画出对长度为10的有序表进行折半查找的判定树,并求等概率时查找成功的平均查找长度。 9.25 假设顺序表按关键字自大至小有序,试改写教科书9.1.1节中的顺序查找算法,将监视哨设在高下标端。然后画出此查找过程的判定树,分别求出等概率情况下查找成功和不成功时的平均查找长度。 9.25 1 2 n int Search_Sq(SSTable ST, int key) { ??ST.elem[ST.length+1].key=key; ? ?for(i=1; ST.elem[i].key key; i++); ??if( iST.length || ST.elem[i].keykey) return 0; ??return i; } 人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。 ”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力; 通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣; 通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我们前进。 * 最大堆的初始化step5_1 i=1,j=2i+1=3 80 17 20 15 10 35 30 12 2 1 1 2 3 4 5 6 7 8 9 10 80 17 20 15 10 35 30 12 2 1 0 1 2 3 4 5 6 7 8 9 j 2j 2j+1 最大堆的初始化step5_2 80 17 35 15 10 20 30 12 2 1 1 2 3 4 5 6 7 8 9 10 80 17 35 15 10 20 30 12 2 1 0 1 2 3 4 5 6 7 8 9 typedef SqList HeapType; void HeapAdjust( HeapType H, int s, int m) { rc = H.r[s]; for( j=2*s; j=m; j*=2){ if( jm H.r[j].key H.r[j+1].key) ++j; if( rc.key = H.r[j].key) break; H.r[s] = H.r[j]; s = j; } H.r[s] = rc; } void HeapSort( HeapType H ) { for( i=H.length/2; i0; --i) //建立初始堆 HeapAdjust( H, i, H.length); for( i=H.length; i1; --i){ H.r[1] ←→ H.r[i]; HeapAdjust( H, 1, i-1 ); } } 算法分析 深度为k的堆,筛选算法中进行的关键字比较次数至多为2(k-1)。建初始堆进行了?n/2?次筛选,关键字比较次数至多为: n个关键字,完全二叉树的深度?log2n?+1。调整建立新堆时,调用HeapAdjust过程n-1次,关键字比较次数至多为: 堆排序的时
您可能关注的文档
最近下载
- JR_T 0237-2021 金融大数据平台总体技术要求.docx
- 江西省吉安市第一中学2024-2025学年高一上学期第一次月考语文(原卷版).docx VIP
- 《Q∕CR9603-2015-高速铁路桥涵工程施工技术规程》.pdf
- 黑龙江大学《概率论》2022-2023学年第一学期期末试卷.doc VIP
- 我国进口牛羊肉行业市场营销方案.docx
- 中国伦理学会德育研究会班主任工作研究中心成立大会主题报告.ppt
- 学校校长年终工作总结.docx VIP
- 报考职位及人数.doc
- 新人教版数学六年级上册全册课本练习题精心可编辑.doc VIP
- 2024秋国开《市场营销原理与实务》形考任务1-4参考答案.doc
文档评论(0)