第04查找与排序技术-2排序.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.4 基本排序 4.4.1 概 述 1、排序的功能:将一个数据元素(或记录)的任意序列,重新排成一个按关键字有序的序列。 2、排序过程的组成步骤: 首先比较两个关键字的大小; 然后将记录从一个位置移动到另一个位置。 3、用于内存文件的排序 假设待排序的记录存放在地址连续的一组存储单元中,那么这种存储方式下的数据类型可描述为: MAX 0 1 2 3 4 ……… key info #define MAX 20 typedef struct { int key; float otherinfo; }RedType; 基本排序 插入排序 选择排序 交换排序 归并排序 直接插入排序 折半插入排序 简单选择排序 堆排序 起泡排序 快速排序 基数排序 shell排序 4.4.2 插入排序 插入排序基本思想: 每步将一个待排序的记录按其关键字大小插入到前面已排序表中的适当位置,直到全部插入完为止。 该算法适合于n 较小的情况,时间复杂度为O(n2). 基本思想:从数组的第2号元素开始,顺序从数组中取出元素,并将该元素插入到其左端已排好序的数组的适当位置上 待排元素序列:[53] 27 36 15 69 42 第一次排序: [27 53] 36 15 69 42 第二次排序: [27 36 53] 15 69 42 第三次排序: [15 27 36 53] 69 42 第四次排序: [15 27 36 53 69] 42 第五次排序: [15 27 36 42 53 69] 直接插入排序示例 对于有n个数据元素的待排序列,插入操作要进行n-1次 直接插入排序: void insertSort(RedType L[ ],int n) { int i ,j; for(i=2; i=n; i++) if(L[i].keyL[i-1].key) { L[0]=L[i]; /* 作为监视哨*/ for( j=i-1; L[0].keyL[j].key; ? ?j ) L[j+1]=L[j]; /* 记录后移*/ L[j+1]=L[0]; /* 插入 */ } } 插入算法如下: 方法:Ki与Ki-1,K i-2,…K1依次比较,直到找到应插入的位置。 基本思想: 每一趟在n-i+1个记录中选取关键码最小的记录作为有序序列中第i个记录。 4.4.3 选择排序 思想:首先从1~n个元素中选出关键字最小的记录交换到第一个位置上。然后再从第2 个到第n个元素中选出次小的记录交换到第二个位置上,依次类推。 时间复杂度为O(n2), 适用于待排序元素较少的情况。 初态 8 3 9 1 6 8 3 9 1 6 8 3 9 1 6 8 3 9 1 6 i j k i j k i j k i j k 1 3 9 8 6 互换 i j k 1 3 9 8 6 i k j 1 3 9 8 6 i k j 第一趟 第二趟 1 3 9 8 6 i k j 第三趟 简单选择排序 简单选择排序的算法如下: void SelectSort( RedType L[ ],int n) { int i,j,k,t; for (i=1,i=n;++i) /*选择第i小的元素,并交换到位*/ { k=i; for(j=i+1;j=n;++j) if ( L[j].keyL[k].key) k=j; /*L[k] 中存放的是第I小的元素*/

文档评论(0)

zywx66 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档