[工学]210933_第9章排序.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]210933_第9章排序

第九章 内部排序 排序(Sorting)是将任意顺序的序列 重新排成按关键字有序的序列 排序的目的之一是提高查找效率 排序是数据处理领域中的常用运算 例如:将下列关键字序列 52, 49, 80, 36, 14, 58, 61, 23, 97, 75 调整为 14, 23, 36, 49, 52, 58, 61 ,75, 80, 97 §1.概述 1、排序定义 有一组记录元素(R ,R ,…,R ),确定 1 2 n 一种排序法(R ,R ,…,R )使得 j1 j2 jn key ≤key ≤... ≤key 非递减(或非递 j1 j2 jn 增)排序,其中 j ,j ,…,j ,…,j ∈{1,2,…,n}且{jp≠jq},称 1 2 p n 这种操作为排序 2、排序相关概念 内部排序与外部排序 内排:指将待排序记录存放在内存中进行排 序的过程。一般用于小文件,数据的个数较 少的情况 外排:值待排序记录的数量很大,内存一次 不能容纳全部记录,在排序过程中尚需对外 存进行访问的排序过程。适用于大文件。 排序概念(续) 趟(Pass) 实现一个元素的有序性所完成的操作 稳定性 若在排序前两个记录在序列中的关系 为…R …R …,且R 与R 的关键字相同 i j i j Key =Key ,排序后若…R …R …称排序方法 i j i j 稳定,若…R …R …称排序方法不稳定 j i 3、内部排序的相关概念 排序方法分类 插入排序 交换排序 选择排序 归并排序 基数排序 排序算法的关键操作 比较:比较两个关键字的大小 移动:将记录从一个位置移动至另一个位置 内排概念(续) 待排记录在内存中的存储方式 顺序表 静态链表 带地址辅助向量的顺序表 单链表 排序算法分析 时间开销:比较和移动次数(评价排序算法的好坏 的重要标志) 空间开销:辅助空间等 内部排序的方法: 内部排序的过程是一个逐步扩大 记录的有序序列长度的过程。 有序序列区 无序序列区 经过一趟排序 有序序列区 无序序列区 基于不同的“扩大”有序序列长 度的方法,内部排序方法大致可分 下列几种类型: 插入类 交换类 选择类 归并类 其它方法 const MAXSIZE = 1000; // 待排顺序表最大长度 待排记录的数据类型定义如下: typedef int KeyType; // 关键字类型为整数类型 typedef struct { KeyType key; // 关键字项 InfoType otherinfo; // 其它数据项 } RcdType; // 记录类型 typedef

文档评论(0)

skvdnd51 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档