9232826

当前课程知识点:数据结构 >  第9章 内部排序 >  9.8 排序方法总结 >  9.8 排序方法总结

返回《数据结构》慕课在线视频课程列表

9.8 排序方法总结在线视频

下一节:第9章 内部排序讨论题

返回《数据结构》慕课在线视频列表

9.8 排序方法总结课程教案、知识点、字幕

同学们大家好

我是云南大学信息学院教师孔兵

这节课我们对各种排序方法进行一个总结比较

先观察一个表

表中对各种排序方法的平均时间

最坏情况和辅助存储的需求量做了一个总结

其中简单排序是除了希尔排序以外的所有插入排序

起泡排序和选择排序

简单排序的平均时间和最坏情况的时间复杂度都是O(n2)

辅助存储空间主要是交换时作为中间变量,一般是常量

快速排序呢,平均时间是O(nlogn)

最坏情况下是O(n2)

那么需要的辅助存储空间是O(logn)

这个主要是递归过程中用到的

堆排序和归并排序平均时间和最快情况都是O(nlogn)

也就是说这两种方法呢

对于待排序序列的初始状况不敏感

堆排序需要的辅助空间为常量

归并排序需要一个和原序列等长的辅助空间

作为归并结果暂存的空间

从基数排序的过程来看

待排序序列的初始状况对排序时间没有任何影响

基数排序没有平均时间和最坏情况的说法

基数排序需要的辅助空间是指针数组的空间rd

下面给出几条结论:

就平均性能而言,快速排序最佳

但快速排序在最坏情况下的时间性能不如堆排序和归并排序

而后两者比较的结果是,归并排序是稳定的

在n较大时,归并排序所需时间较堆排序省

但需要辅助存储较多

“简单排序”方法

序列“基本有序”或n值较小时

它是最佳的排序方法,因此常将它和其它排序方法

如归并排序、快速排序等结合在一起使用

归并排序和快速排序都是采用递归自上而下逐渐减小问题规模

当规模为1的时候递归返回

可以考虑和简单排序方法结合

当缩减的问题规模较小时,不再继续分解

而是通过调理简单排序方法对小规模的序列进行排序

随后返回,这样可以发挥各自的长处

一般来说

基数排序中每位关键字的取值和待排序记录的个数比较都非常小

所以,基数排序时间复杂度可写成O(dn)

因此,它较适合n值很大而关键字较小的情况

基数排序和所有时间复杂度为O(n2)的简单排序方法是稳定的

快速排序、堆排序和希尔排序等时间性能较好的方法是不稳定的

好,同学们,数据结构课程到这里就全部结束了

谢谢大家!

数据结构课程列表:

前言

-1.算法概念导入

--1.1 算法概念导入

-2.数据结构课程介绍

--2.数据结构课程介绍

-数据结构前言PPT

第0章 预备知识

-0.1变量、类型和表达式

--0.1变量、类型和表达式

-0.2 函数

--0.2 函数

-0.3 指针和单链表

--0.3 指针和单链表

-0.4 数组、指向函数的指针

--0.4 数组、指向函数的指针

-第0章 预备知识讨论题

-数据结构第0章预备知识PPT

第1章 绪论

-1.1什么是数据结构

--1.1什么是数据结构

--测试题

-1.2基本概念和术语

--1.2基本概念和术语

--测试题

-1.3数据结构的描述

--1.3数据结构的描述

--测试题

-1.4抽象数据类型的定义和实现

--1.4抽象数据类型的定义和实现

--测试题

-1.5算法和算法分析概念

--1.5算法和算法分析概念

--测试题

-1.6算法分析示例

--1.6算法分析示例

--测试题

-第1章 绪论讨论题

-数据结构第1章 绪论PPT

第2章 线性表

-2.1 线性表的类型定义

--2.1线性表的类型定义

--测试题

-2.2线性表的顺序表示和实现

--2.2 线性表的顺序表示和实现

--测试题

-2.3 线性链表

--2.3 线性链表

--测试题

-2.4 静态链表

--2.4 静态链表

--测试题

-2.5 循环链表和双向链表

--2.5 循环链表和双向链表

--测试题

-第2章 线性表讨论题

-数据结构第2章线性表PPT

第3章 栈和队列

-3.1 栈

--3.1栈

--测试题

-3.2 栈的实现

--3.2 栈的实现

--测试题

-3.3 栈的应用

--3.3 栈的应用

-3.4 栈与递归的实现

--3.4栈与递归的实现

--测试题

-3.5 队列和链队列

--3.5 队列和链队列

--测试题

-3.6 循环队列

--3.6 循环队列

--测试题

-第3章 栈和队列讨论题

-数据结构第3章栈和队列PPT

第4章 串

-4.1 串

--4.1 串

--测试题

-数据结构第4章 串PPT

第5章 数组

-5.1 数组定义和表示

--5.1 数组定义和表示

--测试题

-5.2矩阵的压缩存储

--5.2 矩阵的压缩存储

--测试题

-第5章 数组讨论题

-数据结构第5章数组PPT

第6章 树和二叉树

-6.1 树的定义和基本术语

--6.1 树的定义和基本术语

-6.2 二叉树和二叉树的性质

--6.2 二叉树和二叉树的性质

--测试题

-6.3 二叉树的存储结构

--6.3二叉树的存储结构

--测试题

-6.4 遍历二叉树

--6.4 遍历二叉树(1)

--6.4 遍历二叉树(2)

--测试题

-6.5 线索二叉树

--6.5 线索二叉树

--测试题

-6.6 树的存储

--6.6树的存储

-6.7 树的转换和遍历

--6.7 树的转换和遍历

--测试题

-6.8 赫夫曼树

--6.8 赫夫曼树

-6.9 赫夫曼编码

--6.9 赫夫曼编码

--测试题

-第6章 树和二叉树讨论题

-数据结构第6章树和二叉树PPT

第7章 图

-7.1 图的定义和术语

--7.1.1图的定义和术语(1)

--7.1.2图的定义和术语(2)

--测试题

-7.2 图的存储结构

--7.2.1 数组表示法(1)

--7.2.2 数组表示法(2)

--7.2.3 邻接表

--测试题

-7.3 图的遍历

--7.3.1 深度优先搜索

--7.3.2 广度优先搜索

--测试题

-7.4 最小生成树

--7.4.1 普里姆算法

--7.4.2 克鲁斯卡尔算法

--测试题

-7.5 有向无环图

--7.5.1 拓扑排序

--7.5.2 关键路径

--测试题

-7.6 最短路径

--7.6.1 单源最短路径-迪杰斯特拉算法

--7.6.2 每一对顶点之间的最短路径-弗洛伊德算法

--测试题

-第7章 图讨论题

-数据结构第7章图PPT

第8章 查找

-8.1 查找基本概念和顺序查找

--8.1 查找基本概念及顺序查找

--测试题

-8.2 有序表的查找

--8.2 有序表的查找

--测试题

-8.3 二叉排序树

--8.3.1 二叉排序树(1)

--8.3.2 二叉排序树(2)

--测试题

-8.4 平衡二叉树

--8.4 平衡二叉树

--测试题

-8.5 哈希表

--8.5.1 哈希表及哈希函数的构造

--8.5.2 解决冲突的方法

--8.5.3 哈希表的查找和性能分析

--测试题

-第8章 查找讨论题

-数据结构第8章查找PPT

第9章 内部排序

-9.1插入排序

--9.1.1 插入排序(1)

--9.1.2 插入排序(2)

--测试题

-9.2 希尔排序

--9.2 希尔排序

--测试题

-9.3 快速排序

--9.3 快速排序

--测试题

-9.4 选择排序

--9.4 选择排序

--测试题

-9.5 堆排序

--9.5 堆排序

--测试题

-9.6 归并排序

--9.6 归并排序

--测试题

-9.7 基数排序

--9.7 基数排序

--测试题

-9.8 排序方法总结

--9.8 排序方法总结

-第9章 内部排序讨论题

-数据结构第9章内部排序PPT

9.8 排序方法总结笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。