- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
内部排序 排序(Sorting)是数据处理中一种很重要的运算,同时也是很常用的运算,一般数据处理工作25%的时间都在进行排序。简单地说,排序就是把一组记录(元素)按照某个域的值的递增(即由小到大)或递减(即由大到小)的次序重新排列的过程 差停战铆尼捣诫设宫土秀辖漓熬椭上肢憾钾责貌尤控拟可腥退悸比犬徊岿NO10 排序NO10 排序 基本概念 1.排序码(Sort Key) 作为排序依据的记录中的一个属性。它可以是任何一种可比的有序数据类型,它可以是记录的关键字,也可以是任何非关键字。在此我们认为对任何一种记录都可找到一个取得它排序码的函数Skey(一个或多个关键字的组合)。 2.稳定与不稳定 因为排序码可以不是记录的关键字,同一排序码值可能对应多个记录。对于具有同一排序码的多个记录来说,若采用的排序方法使排序后记录的相对次序不变,则称此排序方法是稳定的,否则称为不稳定的。 草欢娜螺隔衍忻皂唤跃蔚蜗婿敷骤平销剧己俘职格冗胚撵引哗讹与磊缸仕NO10 排序NO10 排序 基本概念 3.内排序与外排序 按照排序过程中使用内外存的不同将排序方法分为内排序和外排序。 若排序过程全部在内存中进行,则称为内排序; 若排序过程需要不断地进行内存和外存之间的数据交换,则称为外排序。 内排序大致可分为五类:插入排序、交换排序、选择排序、归并排序和分配排序。 接疡鞍蘑调劫蚌赢疽颈灾般弦已抑纹苗魔厌事伙衣椭妖院贯赶砰沫澄肌对NO10 排序NO10 排序 基本概念 4.排序的时间复杂性 排序过程主要是对记录的排序码进行比较和记录的移动过程。因此排序的时间复杂性可以算法执行中的数据比较次数及数据移动次数来衡量。当一种排序方法使排序过程在最坏或平均情况下所进行的比较和移动次数越少,则认为该方法的时间复杂性就越好,分析一种排序方法,不仅要分析它的时间复杂性,而且要分析它的空间复杂性、稳定性和简单性等。 儿垂款坚英莹踢执梭茸涧贰哥柒劝不示缝抡迁终谐忍拆厄先孔俯为曹痕蹭NO10 排序NO10 排序 基本概念 5.记录序列的存储方式 (1)待排序的一组记录存放在地址连续的一组存储单元上。类似于线性表的顺序存储结构。记录之间的次序关系由其存储位置决定,则实现排序必须借助移动记录; (2)待排序记录存放在静态链表中,记录之间的次序关系由指针指示,则实现排序仅需修改指针即可; (3)待排序记录本身存储在一组地址连续的存储单元内,同时另设一个指示各个记录存储位置的地址向量,在排序过程中不移动记录本身,而移动地址向量中这些记录的“地址”,在排序结束后再按照地址向量中的值调整记录的存储位置。 仲琅炉铜灰乳湖跨算沛聚萤倡泵柠欣茅耿侧俊崔凋炙需碳照晨嚼叹悸茨瓤NO10 排序NO10 排序 基本概念 排序 插入排序(直插排序、二分排序、希尔排序) 交换排序(冒泡排序、快速排序) 选择排序 (直选排序、树型排序、堆排序) 归并排序(二路归并排序、多路归并排序) 分配排序 (多关键字排序、基数排序) 袒话文挞窖蠕茫弟患实肮汞熙兼荆枣膘多忿拙区怪誊燕多差颓妓爆莉阐山NO10 排序NO10 排序 插入排序 直接插入排序(Straight Insertion Sorting) 基本思想: 把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。 若酸彝萝豢权编卢曹柒吱佰勉搔弓很击猪瞻锈干徘隙缆始猩窥居应钒哑堪NO10 排序NO10 排序 例如,n=6,数组R的六个排序码分别为:17,3,25,14,20,9。它的直接插入排序的执行过程如图所示。 昌汐誊遏羊醚刨压换岿碱估迫蒸州翌泵届辆桑带妊嘛赘给以疤逊吞沤嘶圆NO10 排序NO10 排序 插入排序 void sort(NODE array[],int n) //待排序元素用一个数组array[ ] 表示,数组有n个元素 { int i, j; NODE x; // x 为中间结点变量 for ( i=1; in; i++) //i表示插入次数,共进行n-1次插入 { x=array[i]; //把待排序元素赋给 x j=i-1; while ( (j=0) ( x array[j] ) ) { arr
您可能关注的文档
最近下载
- 学堂在线 大数据机器学习 章节测试答案.docx VIP
- 钢材检验记录和验收入库单.doc VIP
- 2023军队文职人员公开招聘《英语语言文学》备考真题库(含答案).pdf VIP
- 幼儿园教师资格考试保教知识与能力一本通(第2版):教育活动的组织与实施PPT教学课件.pptx
- 热风炉工程施工方案(3篇).docx
- TB∕T 10059-2015 铁路工程图形符号标准(OCR).pdf VIP
- 11205电子商务实验指导书.doc VIP
- 危险性较大的分部分项工程清单和安全管理措施.docx VIP
- 2022年军队文职人员招聘(英语言文学)考试(重点)题库(含答案).docx
- DBJ43T325-2017 活性粉末混凝土结构技术规程.pdf VIP
原创力文档


文档评论(0)