收藏 分享(赏)

简单选择排序与堆排序.ppt

上传人:hwpkd79526 文档编号:12228115 上传时间:2021-12-04 格式:PPT 页数:15 大小:102.50KB
下载 相关 举报
简单选择排序与堆排序.ppt_第1页
第1页 / 共15页
简单选择排序与堆排序.ppt_第2页
第2页 / 共15页
简单选择排序与堆排序.ppt_第3页
第3页 / 共15页
简单选择排序与堆排序.ppt_第4页
第4页 / 共15页
简单选择排序与堆排序.ppt_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、1 第3章查找与排序技术 3 3 3简单选择排序与堆排序1 简单选择排序 输入 无序序列P 1 n 输出 有序序列P 1 n PROCEDUDESELESORT P n FORi 0TOn 2DO k iFORj i 1TOn 1DOIFP j P k THENk jIF k i THEN d P i P i P k P k d RETURN selesort p n intn ETp inti j k ETd for i 0 i n 2 i i 1 k i for j i 1 j n 1 j j 1 if p j p k k j if k i d p i p i p k k d return

2、 2 堆排序堆的定义 具有n个元素的序列 h1 h2 hn 当且仅当满足 i 1 2 n 2 时称之为堆 由堆的定义可以看出 堆顶元素 即第一个元素 必为最大项 或具有n个元素的序列 h1 h2 hn 当且仅当满足 i 1 2 n 2 时称之为堆 序列 91 85 53 36 47 30 24 12 是一个堆 调整建堆在一棵具有n个结点的完全二叉树 用一维数组H 1 n 表示 中 假设结点H m 的左右子树均为堆 现要将以H m 为根结点的子树也调整为堆 8 第3章查找与排序技术 9 第3章查找与排序技术 10 第3章查找与排序技术 堆排序 1 首先将一个无序序列建成堆 2 然后将堆顶元素 序

3、列中的最大项 与堆中最后一个元素交换 最大项应该在序列的最后 不考虑已经换到最后的那个元素 只考虑前n 1个元素构成的子序列 显然 该子序列已不是堆 但左 右子树仍为堆 可以将该子序列调整为堆 反复做第 2 步 直到剩下的子序列为空为止 调整建堆输入 完全二叉树数组H 1 n 其中结点H m 的左右子树均为堆 输出 以H m 为根结点的子树为堆 PROCEDURESIFT H n m t H m j 2mWHILE j n DO IF j n and H j H j 1 THENj j 1IF t H j THEN H m H j m j j 2m elsej n 1 H m tRETURN

4、堆排序输入 无序序列H 1 n 输出 无序序列H 1 n PROCEDUREHEAPSORT H n k n 2FORi kTO1BY 1DOSIFT H n i 无序序列建堆 FORi nTO2BY 1DO t H 1 H 1 H i H i t 堆顶元素换到最后 SIFT H i 1 1 调整建堆 RETURN heapsort p n intn ETp inti k ETt k n 2 for i k 1 i 0 i sift p n 1 i 无序序列建堆 for i n 1 i 1 i t p 0 p 0 p i p i t 堆顶元素换到最后 sift p i 1 0 调整建堆 return staticsift h n m intn m ETh intj ETt t h m j 2 m 1 1 while j n if j n h j h j 1 j j 1 if t h j h m h j m j j 2 m 1 1 elsej n 1 h m t return

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报