最新堆排序课件PPT.ppt

最新堆排序课件PPT.ppt

ID:62110735

大小:1.75 MB

页数:35页

时间:2021-04-17

最新堆排序课件PPT.ppt_第1页
最新堆排序课件PPT.ppt_第2页
最新堆排序课件PPT.ppt_第3页
最新堆排序课件PPT.ppt_第4页
最新堆排序课件PPT.ppt_第5页
资源描述:

《最新堆排序课件PPT.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、进入夏天,少不了一个热字当头,电扇空调陆续登场,每逢此时,总会想起那一把蒲扇。蒲扇,是记忆中的农村,夏季经常用的一件物品。  记忆中的故乡,每逢进入夏天,集市上最常见的便是蒲扇、凉席,不论男女老少,个个手持一把,忽闪忽闪个不停,嘴里叨叨着“怎么这么热”,于是三五成群,聚在大树下,或站着,或随即坐在石头上,手持那把扇子,边唠嗑边乘凉。孩子们却在周围跑跑跳跳,热得满头大汗,不时听到“强子,别跑了,快来我给你扇扇”。孩子们才不听这一套,跑个没完,直到累气喘吁吁,这才一跑一踮地围过了,这时母亲总是,好似生气的样子,边扇边训,“你看热的,跑什么?”此时这把蒲扇,是那么凉快,那么的温

2、馨幸福,有母亲的味道!  蒲扇是中国传统工艺品,在我国已有三千年多年的历史。取材于棕榈树,制作简单,方便携带,且蒲扇的表面光滑,因而,古人常会在上面作画。古有棕扇、葵扇、蒲扇、蕉扇诸名,实即今日的蒲扇,江浙称之为芭蕉扇。六七十年代,人们最常用的就是这种,似圆非圆,轻巧又便宜的蒲扇。  蒲扇流传至今,我的记忆中,它跨越了半个世纪,也走过了我们的半个人生的轨迹,携带着特有的念想,一年年,一天天,流向长长的时间隧道,袅堆排序对于具有n个结点的完全二叉树,如果按照从上至下,每层从左至右的次序,对结点进行编号,则编号为i的结点有以下性质:若i≤n/2,即2i≤n,则编号为i的结

3、点为分支结点,否则为叶子结点若n为奇数,则树中每个分支结点既有左孩子又有右孩子;若n为偶数,则编号最大的分支结点(编号为n/2)只有左孩子,没有右孩子,其余分支结点左、右孩子都有若编号为i的结点有左孩子,则左子结点的编号为2i;若编号为i的结点有右孩子则右子结点为2i+1除树根结点外,若一个结点的编号为i,则它的双亲结点的编号为i/2堆的定义n个元素的序列{k1,k2,…,kn}当且仅当满足如下关系时,称之为堆(heap)。若满足条件(1)则称大根堆(或大顶堆);若满足条件(2)则称小根堆(或小顶堆)。若将和此序列对应的一维数组(即以一维数组作此序列的存储结构)看成是

4、一个完全二叉树,则堆实质上是满足如下性质的完全二叉树:树中任一非叶结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。【例1】将10个元素组成的序列{34,39,20,65,47,12,98,73,81,56}建成大根堆。将序列看成是完全二叉树的按层次遍历结果,建立完全二叉树;自下向上将完全二叉树调整为大根堆(动画演示)堆的删除——删除堆顶元素将堆尾元素写入堆顶;自上而下调整受影响的子树,使每一棵有变动的子树都符合堆的要求;如果调整后改变了的子树的根结点,则继续调整相应的子树直到堆的叶子结点。【例2】删除堆顶元素98983481201256733965474

5、73481201256733965813447201256733965813473201256473965813473201256653947直接选择排序基本思想:将数据元素序列分成有序区和无序区两部分。每趟排序都从无序区中选取出关键字最小的数据元素放在有序区的最后,直到全部数据元素排序完毕。要点:把元素集合划分为有序区和无序区初始时,有序区为空每趟排序过程中,从无序区中选出关键字最小的数据元素与无序区的第一个元素交换,以达到扩大有序区长度的目的。堆排序堆排序(HeapSort)是一树形选择排序,利用大根堆(或小根堆)堆顶元素最大(或最小)这一特征,使得在当前无序区中选取

6、最大(或最小)关键字的记录变得简单。堆排序的一般步骤(以结果为非递减序列为例)将待排序序列R[l..n]看成是一棵完全二叉树的顺序存储结构,利用完全二叉树中双亲结点和孩子结点之间的内在关系,创建对应的完全二叉树;将第①步创建的完全二叉树调整为小根堆;利用小根堆的特性,从堆中提取最小值并删除根;重新调整删除根的堆为新堆,重复第③步直到堆的长度为零;将每次提取的根依次排列即为有序序列。【例3】用堆排序将序列{20,60,26,30,36,10}调整为递增序列。构建小根堆;提取堆顶并调整删除堆顶后的元素为新堆;重复第2步,直至堆空。每次提取的堆顶依次排列即为递增序列。将序列{2

7、0,60,26,30,36,10}构建小根堆;202660103630201060263630201030263660102030263660102030263660输出102620303660202630366020263036603626306026363060输出20102030263660小根堆的递增输出序列303660输出3036603660输出36输出6060递增输出序列为:10202630366026363060603630303660输出26算法分析最坏时间复杂度为O(N*logN)。平均性能接近于最坏性能。由

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。