数据结构与算法学习笔记排序

Posted ChinaManor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构与算法学习笔记排序相关的知识,希望对你有一定的参考价值。

1:
数据结构与算法
排序

2:
报告人:XXX
排序
目标
本章目标
插入排序

交换排序:冒泡排序和快速排序

选择排序

归并排序

各种排序的综合比较

3:
01
第一节:直接插入排序
The first chapter
内容展示

4:
报告人:XXX
1 直接插入排序
目标
排序
直接插入排序 总思想:
每次将一个待排序的记录,按其关键字值的大小插入到前面已排序好的记录序列中的适当位置,直到全部记录插入完成为止。

5:
报告人:XXX
1 插入排序
1.1 直接插入排序
目标
排序
例:
(43) 21 89 15 43
(15 21 43 43 89 )
i=4
i=1
(21 43) 89 15 43
(21 43 89) 15 43
i=2
直接插入排序示例
r0 r1 r2 r3 r4
43 21 89 15 43
(15 21 43 89) 43
i=3

6:
报告人:XXX
1 插入排序
1.2 直接插入排序
目标
排序
例1:初始关键字序列如下:
{49,38, 65,97,76,13,27,49,55 04},使用直接插入排序画出其排序过程

例2:对下列关键字序列进行直接插入排序:
16 25 12 30 47 11 23 36 9 18 31

7:
第二节:交换排序

The second chapter
内容展示
02

8:
报告人:XXX
2 交换排序
目标
排序
交换排序的种类:
1.冒泡排序
2.快速排序

9:
报告人:XXX
2 交换排序
2.1 冒泡排序
目标
排序
冒泡排序原理:
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较

10:
报告人:XXX
2 交换排序
2.1 冒泡排序
目标
排序
冒泡排序过程:

11:
报告人:XXX
2.2 快速排序
目标
排序
总思想:
2 交换排序
通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

12:
报告人:XXX
2.2 快速排序
目标
排序
流程:
2 交换排序
首先设定一个分界值,通过该分界值将数组分成左右两部分。
将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时,左边部分中各元素都小于或等于分界值,而右边部分中各元素都大于或等于分界值。
然后,左边和右边的数据可以独立排序。对于左侧的数组数据,又可以取一个分界值,将该部分数据分成左右两部分,同样在左边放置较小值,右边放置较大值。右侧的数组数据也可以做类似处理。
重复上述过程,可以看出,这是一个递归定义。通过递归将左侧部分排好序后,再递归排好右侧部分的顺序。当左、右两个部分各数据排序完成后,整个数组的排序也就完成了。

13:
https://baijiahao.baidu.com/s?id=1667443239764190065&wfr=spider&for=pc
2.2 快速排序
目标
排序
流程图解:
2 交换排序

14:
第三节:选择排序

The third chapter
内容展示
03

15:
报告人:XXX
3 选择排序
目标
排序
直接选择排序 总思想:
每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的 数据元素排完 。

16:
报告人:XXX
3 选择排序
3.1 直接选择排序
目标
排序
直接选择排序图解:

17:
第四节:归并排序

The forth chapter
内容展示
04

18:
报告人:XXX
4 归并排序
4.1 归并排序
目标
排序
  归并排序的过程基于下列基本思想进行:
将两个或两个以上的有序子序列 “归并” 为一个有序序列。

19:
目标
排序
  在内部排序中,通常采用的是2-路归并排序。即:将两个位置相邻的记录有序子序列
4 归并排序
4.1 归并排序

20:
报告人:XXX
目标
排序
2-路归并的方法:
将待排序记录R[0]到R[n-1]看成是n个长度为1的有序子表,把这些子表依次两两归并,便得到[n/2]个有序的子表,然后,再把这[n/2]个有序的子表两两归并,如此重复,直到最后得到一个长度为n的有序表为止。
4 归并排序
4.1 归并排序

21:
报告人:XXX
目标
排序
例如,如下图为2-路归并的一个例子:
(52) (23) (80) (36) (68) (14) (27)
(23 52) (36 80) (14 68) (27)
(23 36 52 80) (14 27 68)
(14 23 27 36 52 68 80)
一趟归并之后
二趟归并之后
三趟归并之后

4 归并排序
4.1 归并排序

22:
第五节:排序综合比较

The fifth chapter
内容展示
05

23:
报告人:XXX
5 排序的比较
目标
排序
排序法 最坏所需时间 平均时间 稳定性 所需辅助空间
直接插入 O(n2) O(n2) Yes O(1)
冒泡排序 O(n2) O(n2) Yes O(1)
快速排序 O(n2) O(nlog2n) No O(log2n)
选择排序 O(n2) O(n2) No O(1)
归并排序 O(nlog2n) O(nlog2n) Yes O(n)
各种排序方法的综合比较
待排序的记录序列中可能存在两个或两个以上关键字相等的记录。排序前的序列中Ri领先于Rj(即i<j).若在排序后的序列中Ri仍然领先于Rj,则称所用的方法是稳定的。比如int数组[1,1,1,6,4]中a[0],a[1],a[2]的值相等,在排序时不改变其序列,则称所用的方法是稳定的。

24:
Thank You!
力学笃行 志存高远

以上是关于数据结构与算法学习笔记排序的主要内容,如果未能解决你的问题,请参考以下文章

数据结构与算法学习笔记 查找

尚硅谷算法与数据结构学习笔记06 -- 排序算法

数据结构学习笔记(八大排序算法)整理与总结

数据结构学习笔记(八大排序算法)整理与总结

python 学习笔记 -- 数据结构与算法 希尔排序 Shell Sort

数据结构与算法学习笔记排序