数据结构-排序PPT.pptxVIP

  • 3
  • 0
  • 约1.88千字
  • 约 118页
  • 2024-06-18 发布于北京
  • 举报

第10章内部排序;10.1概述10.2插;10.1概述一、排序;一、什么是排序?排序是计算机;1.什么是排序?将一组杂;二、内部排序和外部排序若待排;三、内部排序的方法内部;基于不同的“扩大”有序序列长;待排记录的数据类型定义如下:#;1.插入类将无序子序列中;2.交换类通过“交换”无;3.选择类从记录的无序子;4.归并类通过“归并”两个;10.2插入排;插入排序的基本思想是:;有序序列R[1..i-1]R[;实现“一趟插入排序”可分三步进;直接插入排序(基于顺序查找)表;1)直接插入排序新元素插入;一、直接插入排序利用“顺;从R[i-1]起向前进行顺序查;对于在查找过程中找到的那些关键;令i=2,3,…,n,;voidInsertionS;例2:关键字序列T=(21,;内部排序的时间分析:实现内部排;对于直接插入排序:最好的情况(;2)折半插入排序优点:比较次;3)希尔(shell)排序基本;38例:关键字序列T=(49;时间效率:空间效率:O(;10.3交换排序;一、起泡排序二、一趟快速排序三;一、起泡排序假设在排序过程;1)冒泡排序基本思路:每趟;voidBubbleSort;冒泡排序的算法分析最好情况:初;时间分析:最好的情况(关键字在;冒泡排序的优点:每一趟整理元素;2)快速排序从待排序列中任取;stlowhigh设R[s];可见,经过“一次划分”,将关;intPartition(;快速排序首先对无序的记录;voidQSort(Red;voidQuickSort(;pivotkey=21(;例2:以关键字序列(256,3;四、快速排序的时间分析假设;设Tavg(1)≤b则可得结;10.4选择排序选择排序;10.4选择排序;一、简单选择排序思路异常简单:;一、简单选择排序假设排序过程中;例:关键字序列T=(21,2;讨论:能否利用(或记忆)首趟的;二、堆排序堆是满足下列性质的数;解释:如果让满足以上条件的元素;rir2ir2i+1;082546495867234;终端结点(即叶子)没有任何子女;堆排序即是利用堆的特性对记录序;难点:将堆的当前顶点输出后,如;基于初始堆进行堆排序的算法步骤;如何“建堆”?两个问题:如何“;所谓“筛选”指的是,对一棵左/;988149735564123;voidHeapAdjust;if(rc.key=;建堆是一个从下往上进行“筛选”;堆排序的时间复杂度分析??1.;堆排序算法分析:空间效率:O(;10.5归并排序;在内部排序中,通常采用的是2-;voidMerge(Rcd;if(i=m)TR[k.;更实际的意义:可以把一个长度为;212525归并排序算法分析:时间效率:;10.6基数排序;基数排序是一种借助“多关键字排;一、多关键字的排序n个;实现多关键字排序通常有两种作法;先对K0进行排序,并按K0;先对Kd-1进行排序,然后;例如:学生记录含三个关键字:系;二、链式基数排序假如多关键;例如:对下列这组关键字{20;在计算机上实现基数排序时,为减;例如:p→369→367→16;进行第二次分配p→230→23;进行第三次收集之后便得到记录的;提醒注意:1.“分配”和“收集;基数排序的时间复杂度为O(d(;10.7各种排序方法的综合比;一、时间性能1.平均的时间;2.当待排记录序列按关键字顺;二、空间性能指的是排序过程中所;3.归并排序所需辅助空间最多;三、排序方法的稳定性能1;例如:排序前(56,3;3.对于不稳定的排序方法,;四、关于“排序方法的时间复杂度;例如:对三个关键字进行排序的判;一般情况下,对n个关键字进行排;10.8 外部排序;一.问题的提出1.;2.对外存中数据的读/写是以“;1.按可用内存大小,利用内部排;例如:假设有一个含10,000;假设“数据块”的大小为200,;由此,对上述例子而言,1)求得;外排总的时间还应包括内部排序所;一般情况下,假设待排记录序列含;1.了解排序的定义和各种排序;2.掌握各种排序方法的时间复;3.理解排序方法“稳定”或“不;衷心感谢全体同学的支持和配合,

文档评论(0)

1亿VIP精品文档

相关文档