欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    数据结构排序讲解.ppt

    • 资源ID:5986039       资源大小:412KB        全文页数:26页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构排序讲解.ppt

    数据结构,第八章,第八章 排序,8.1 基本概念8.2 插入排序8.3 交换排序8.4 选择排序8.5 归并排序,8.1 基本概念,排序:将一个数据元素(或记录)的任意序列,重新排列成一个按关键字有序的序列。,有序表与无序表:一组记录按关键字的递增或递减次序排列得到的结果被称之为有序表,相应地,把排序前的状态称为无序表。,正序表与逆序表:若有序表是按关键字升序排列的,则称为升序表或正序表,否则称为降序表或逆序表。不失普遍性,一般只讨论正序表。,排序的方法:,插入排序:直接插入排序、折半插入排序、希尔排序交换排序:冒泡排序、快速排序选择排序:简单选择排序、堆排序归并排序:2-路归并排序其它排序:多关键字排序,排序基本操作:比较两个关键字大小将记录从一个位置移动到另一个位置,例:,49 38 65 97 76 13 27,i=2 38(38 49)65 97 76 13 27,i=3 65(38 49 65)97 76 13 27,i=4 97(38 49 65 97)76 13 27,i=5 76(38 49 65 76 97)13 27,i=6 13(13 38 49 65 76 97)27,i=1(),i=7(13 38 49 65 76 97)27,27,97,76,65,49,38,27,8.2 插入排序,直接插入排序,排序过程:整个排序过程为n-1趟插入,即先将序列中第1个记录看成是一个有序子序列,然后从第2个记录开始,逐个进行插入,直至整个序列有序。,折半插入排序:用折半查找方法确定插入位置。,例:,i=1(30)13 70 85 39 42 6 20,i=2 13(13 30)70 85 39 42 6 20,i=7 6(6 13 30 39 42 70 85)20,i=8 20(6 13 20 30 39 42 70 85),希尔排序,希尔排序(Shell Sort)又称为“缩小增量排序”。排序过程:先取一个正整数d1n,把所有相隔d1的记录放一组,组内进行直接插入排序;然后取d2d1,重复上述分组和排序操作;直至di=1,即所有记录放进一个组中排序为止。,希尔排序特点,子序列的构成不是简单的“逐段分割”,而是将相隔某个增量的记录组成一个子序列。关键字较小的记录跳跃式前移,在进行最后一趟增量为1的插入排序时,序列已基本有序。,8.3 交换排序,冒泡排序,排序过程:将第一个记录的关键字与第二个记录的关键字进行比较,若为逆序r1.keyr2.key,则交换;然后比较第二个记录与第三个记录;依次类推,直至第n-1个记录和第n个记录比较为止第一趟冒泡排序,结果关键字最大的记录被放在最后。,对前n-1个记录进行第二趟冒泡排序,结果使关键字次大的记录被放在第n-1个位置。重复上述过程,直到“在一趟排序过程中没有进行过交换记录的操作”为止。,例,38,49,76,97,13,97,27,97,30,97,13,76,76,76,27,30,13,65,27,65,30,65,13,13,49,49,30,49,27,38,27,38,30,38,排序后序列为:13 27 30 38 49 65 76 97,快速排序,首先从j所指位置向前搜索第一个关键字小于x的记录,并和rp交换。再从i所指位置起向后搜索,找到第一个关键字大于x的记录,和rp交换。重复上述两步,直至i=j为止。,基本思想:通过一趟排序,将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录进行排序,以达到整个序列有序。,排序过程:,对rst中记录进行一趟快速排序,附设两个指针i和j,设rp=rs,x=rp.key。初始时令i=s,j=t。,再分别对两个子序列进行快速排序,直到每个子序列只含有一个记录为止。,完成一趟排序:(27 38 13)49(76 97 65 50),分别进行快速排序:(13)27(38)49(50 65)76(97),快速排序结束:13 27 38 49 50 65 76 97,49,27,49,65,13,49,49,97,x=49,8.4 选择排序,简单选择排序,首先通过n-1次关键字比较,从n个记录中找出关键字最小的记录,将它与第一个记录交换。再通过n-2次比较,从剩余的n-1个记录中找出关键字次小的记录,将它与第二个记录交换。重复上述操作,共进行n-1趟排序后,排序结束。,排序过程:,例:,初始:49 38 65 97 76 13 27,i=1,13,49,13 27 38 49 65 76 97,排序结束:13 27 38 49 65 76 97,二趟:13 38 65 97 76 49 27,i=2,27,38,或,(i=1,2,.n/2),例:(96,83,27,38,11,9),例:(13,38,27,50,76,65,49,97),可将堆序列看成完全二叉树,则堆顶元素(完全二叉树的根)必为序列中n个元素的最小值或最大值,堆排序,堆的定义:n个元素的序列(k1,k2,kn),当且仅当满足下列关系时,称之为堆。,堆排序:将无序序列建成一个堆,得到关键字最小(或最大)的记录;输出堆顶的最小(大)值后,使剩余的n-1个元素重又建成一个堆,则可得到n个元素的次小值;重复执行,得到一个有序序列。,堆排序需解决的两个问题:如何由一个无序序列建成一个堆?如何在输出堆顶元素之后,调整剩余元素,使之成为一个新的堆?第二个问题解决方法筛选。方法:输出堆顶元素之后,以堆中最后一个元素替代之;然后将根结点值与左、右子树的根结点值进行比较,并与其中小者进行交换;重复上述操作,直至叶子结点,将得到新的堆,称这个从堆顶至叶子的调整过程为“筛选”。,例:,例:含8个元素的无序序列(49,38,65,97,76,13,27,50),如何由一个无序序列建成一个堆?从无序序列的第n/2个元素(即此无序序列对应的完全二叉树的最后一个非终端结点)起,至第一个元素止,进行反复筛选。,8.5 归并排序,归并将两个或两个以上的有序表组合成一个新的有序表。,多路归并排序:将三个或三个以上有序子区间合并成一个有序子区间的排序,称为多路归并排序。常见的有三路归并排序、四路归并排序等,具体实现的方法与二路归并排序类似。,2-路归并排序,排序过程:设初始序列含有n个记录,则可看成n个有序的子序列,每个子序列长度为1。两两合并,得到n/21个长度为2或1的有序子序列。再两两合并,如此重复,直至得到一个长度为n的有序序列为止。,例:,初始关键字:49 38 65 97 76 13 27,一趟归并后:38 49 65 97 13 76 27,二趟归并后:38 49 65 97 13 27 76,三趟归并后:13 27 38 49 65 76 97,例:对52张扑克牌按以下次序排序:23A23A23A23A两个关键字:花色()面值(23A)并且“花色”地位高于“面值”。,8.6 基数排序,多关键字排序,多关键字排序定义:在实际应用中,有时的排序会需要按几种不同排序码来排序。对于多关键字排序(假设有d个关键字),则可以按第1、2、d个关键字的顺序排序,也可以按第d、d-1、d-2、2、1个关键字的顺序排序。,最高位优先法:先对最高位关键字k1(如花色)排序,将序列分成若干子序列,每个子序列有相同的k1值;然后让每个子序列对次关键字k2(如面值)排序,又分成若干更小的子序列;依次重复,直至就每个子序列对最低位关键字kd排序;最后将所有子序列依次连接在一起成为一个有序序列。最低位优先法:从最低位关键字kd起进行排序,然后再对高一位的关键字排序,依次重复,直至对最高位关键字k1排序后,便成为一个有序序列。,多关键字排序方法,从算法简单性比较直接插入排序、冒泡排序、直接选择排序都是简单的排序方法,算法简单,易于理解,而希尔排序、快速排序、堆排序、归并排序都是改进型的排序方法,算法比简单排序要复杂得多,也难于理解。,从时间复杂度选择对元素个数较多的排序,可以选快速排序、堆排序、归并排序,元素个数较少时,可以选简单的排序方法。,

    注意事项

    本文(数据结构排序讲解.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开