数据结构之排序课件PPT.ppt

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

数据结构;第九章 排序;要 求 熟练掌握以下内容: 熟悉各种内部排序方法的基本思想和特点 各种排序方法的优缺点、时、空性能和适用场合 熟悉并掌握三种简单排序算法、快速排序算法和堆排序算法 了解以下内容: 二路归并排序算法 基数排序算法;排序的历史;公元134-135年,某些希腊文稿包含一些分类账的片断,他列出了按头两个字母排序的纳税人的名字. …… 对于今天排序技术起源的探索,是19世纪末发明的排序机器.1880年,美国人口普查,数据处理成为令人头痛的问题—无法在当年完成. 赫尔曼.霍勒里斯(Herman Hollerith),一位人口统计局的20岁的职员,发明了一台巧妙的制表机,用100台这样的制表机,成功的完成了人口普查的统计问题. ……;记录的形式定义为: Typedef struct rectype { KeyType key; /*关键字*/ itemType otherinfo; /*其他域*/ }rectype; ;大多数的排序方法数据是存储在内存中,并在内存中加以处理的,这种排序方法叫内部排序。 如果在排序过程中,数据的主要部分存放在外存储器中(如软盘、硬盘、磁带),借助内存进行内、外存数据交换,逐步排列记录之间的顺序,则称之为外部排序。 一种排序方法,如果排序后具有相同关键字的记录仍维持排序之前的相对次序,则称之为稳定的,否则称为不稳定的。;9.2 三种简单排序算法;1 直接插入排序;图9.1 直接插入排序;直接插入排序算法; 性能分析;性能分析;2. 冒泡排序;图9.2 冒泡排序过程; 冒泡排序算法 void bubblesort(r[ ], n) { int i, j; for (i=1; in; i++) { for ( j=1; j=n-i; j++) if (r[j+1].key r[j].key) r[j] ? r[j+1]; } } ; 修正后的冒泡排序算法 void bubblesort(r[ ], n) { int i, j, flag; for(i=1; in; i++) { flag=1; for( j=1; j=n-i; j++) if (r[j+1].key r[j].key) { flag=0; r[j] ? r[j+1]; } if (flag==1) return; } };Flag的作用 用来指示扫描中有没有进行数据交换,每趟扫描开始前将其置1。当这趟扫描至少出现一次互换时,将其置0。如某趟扫描后flag仍???1,说明此趟扫描已无数据互换,则排序结束,不必再继续扫描了。;冒泡排序算法分析;3.简单选择排序;图9.3 简单选择排序;简单选择排序算法;简单选择排序分析;直接插入排序和简单选择排序的比较;9.3 希尔排序;希尔排序算法;Void shellpass (r[], n, d) /*一趟希尔排序*/ { int i, k; for (i=d+1, i=n; i++) { r[0]=r [i]; k=i-d; while((k0) (r[0].keyr[k].key)) { r[k+d}.key=r[k].key; k=k-d; } r[k+d]=r[0]; } };文件的分割不是简单地“逐段分割”,而是将相隔某个“增量”的记录组成一个子文件,这样可以使元素跳跃式地移动;每个子文件中的元素个数不必相等。 任何增量序列能使用,但必须保证t1=1;当增量序列为1时,该算法就退化成直接插入排序了。 希尔排序是不稳定的。;9.4 快速排序;第一次划分以后,再用相同的算法对划成的两部分分别进行类似的运算,即从每一部分中任选一个数据将其划分成更小的两部分。依此递归地做下去,直至每个小部分中的数据个数为1时,排序过程就结束了。 图7.7所示为一个快速排序的例子,图中的方括号表示待排序部分。;图9.7 快速排序;一趟快速排序采用从两头向中间扫描的办法。 假设原始数据已

文档评论(0)

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

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

1亿VIP精品文档

相关文档