数据结构课件第十章.pptxVIP

  • 0
  • 0
  • 约1.97千字
  • 约 59页
  • 2024-01-27 发布于河南
  • 举报

数据结构课程的内容;9.1概述

9.2插入排序

9.3交换排序

9.4选择排序

9.5归并排序

9.6基数排序;10.1概述;2、关键字;5、什么叫内部排序?什么叫外部排序;7.内部排序的算法有哪些?;1)直接插入排序;2)折半插入排序;例:有6个记录,前5个已排序的基础上,对第6个记录排序。

[1527365369]42

?low?mid?high

[1527365369]42

?low?high

?mid

[1527365369]42

[152736425369];例对下列序列采用希尔排序;例对下列序列采用希尔排序;9.3交换排序;2)快速排序;;例对下列序列采用快速排序;关键字序列T=(21,25,49,25*,16,08),请给出快速排序的具体实现过程。;时间效率快速排序在平均情况下的时间复杂性为O(nlog2n),通常认为是在所有同数量级排序算法中,平均情况下最佳的排序方法。但是,在最坏的情况下(待排记录有序)的快速排序会蜕变成为冒泡排序,时间复杂度为O(n2)。可以采用一些改进措施尽量避免这种情况的出现。

空间效率快速排序是递归算法,需要有一个栈存放每层递归调用时的指针和参数,递归的次数决定额外空间的多少。最理想的递归次数是?log2(n+1)?,故空间复杂度为O(log2n)。

稳定性快速排序为不稳定的排序算法。

12345678910;1)简单选择排序;2)堆排序;08;关键:将堆的当前顶点输出后,如何将剩余序列重新调整为堆?

方法:将当前顶点与堆尾记录交换,然后仿建堆动作重新调整,如此反复直至排序结束。;;;9.5归并排序;归并排序算法分析:;1.什么是“多关键字”排序?实现方法?;2.单逻辑关键字怎样“按位值”排序?;例:T=(02,77,70,54,64,21,55,11),用LSD排序。

分析:

①各关键字可视为2元组;②每位的取值范围是:0-9;即基数radix=10。因此,特设置10个队列,并编号为0-9。;请实现以下关键字序列的链式基数排序:

T=(614,738,921,485,637,101,215,530,790???306);第二趟收集的结果:;各种内部排序方法的比较(教材P289);3、排序的目的是什么?;6、排序主要做的工作:;;例题对下列存放在数组A中的序列采用直接插入排序法排序。;例1:关键字序列T=(13,6,3,31,9,27,5,11),

请写出直接插入排序的中间过程序列。;3)希尔(shell)排序(又称缩小增量排序);例对下列序列采用希尔排序;时间性能:希尔排序的分析非常困难,原因是何种步长序列最优难以断定。通常认为时间复杂度为:O(n3/2)。

较好的步长序列:……121、40、13、4、1;可由递推公式Si=3Si-1+1产生。

空间性能:只用一个额外空间,空间复杂度为O(1);

稳定性:希尔排序是不稳定的排序算法;1)冒泡排序;快速排序举例;例对下列序列采用快速排序;例对下列序列采用快速排序;“快速排序”是否真的比任何排序算法都快?;9.4选择排序;例:关键字序列T=(21,25,49,25*,16,08),请给出简单选择排序的具体实现过程。;1;步骤:从最后一个非终端结点开始往前逐步调整,让每个双亲大于(或小于)子女,直到根结点为止。;;;;21;9.6基数排序(RadixSort);多关键字排序的实现方法通常有两种:;因为有分组,故此算法需递归实现。;0

1

2

3

4

5

6

7

8

9;趟收集的结果:;基数排序算法分析;讨论:若初始记录基本无序,则选用哪些排序方法比较适合?若初始记录基本无序,则最好选用哪些排序方法?

文档评论(0)

1亿VIP精品文档

相关文档