第一范文网 - 专业文章范例文档资料分享平台

编程入门教程第十章 排序 - 图文

来源:用户分享 时间:2025/8/12 20:14:05 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

10.3.3堆排序小顶堆:ri

?时间复杂度O(nLogn)?

大顶堆:ri>r2i,ri>r2i+1空间复杂度O(1)

349839816581737339814765564756122098349820ypb@ustc.edu.cn21中国科学技术大学voidHeapAdjust(HeapType&H,ints,intm){//算法10.10

//已知H.r[s..m]中记录的关键字除H.r[s]之外均满足堆的定义,rc=H.r[s];

for(j=2*s;j<=m;j*=2){//沿key较大的孩子结点向下筛选

if(j=H.r[j].key)break;//rc应插入在位置s上H.r[s]=H.r[j];s=j;}//for

H.r[s]=rc;//插入}//HeapAdjust

voidHeapSort(HeapType&H){

for(i=H.length/2;i>0;--i)HeapAdjust(H,i,H.length);for(i=H.length;i>1;--i){H.r[i]?H.r[1]HeapAdjust(H,1,i-1);}

}//HeapSortypb@ustc.edu.cn22中国科学技术大学10.3.4希尔排序?又称“缩小增量排序”

初始:

4938659776132749554913└────────┘

3827└───────┘

6549└───────┘9755└───────┘

76

└───────┘

一趟排序:132749550449386597

└────┴────┴────┘

270465└────┴────┘

494997└────┴────┘

5538

└────┴────┘

二趟排序:130449382749556597三趟排序:041327384949556576

04

0476

767697

ypb@ustc.edu.cn23中国科学技术大学希尔排序voidShellInsert(SqList&L,intdk){for(i=dk+1;i<=L.length;++i)if(LT(L.r[i].key,L.r[i-dk].key)){L.r[0]=L.r[i];//暂存在L.r[0]

for(j=i-dk;j>0&<(L.r[0].key,L.r[j].key);j-=dk)L.r[j+dk]=L.r[j];//记录后移,查找插入位置L.r[j+dk]=L.r[0];//插入}

}//ShellInsert

voidShellSort(SqList&L,intdlta[],intt){for(intk=0;k

ShellInsert(L,dlta[k]);//一趟增量为dlta[k]的插入排序}//ShellSort

ypb@ustc.edu.cn24中国科学技术大学

搜索更多关于: 编程入门教程第十章 排序 - 图文 的文档
编程入门教程第十章 排序 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c4ymv0249bp9bpag891bi6tck19hq4z003ep_6.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top