数据结构与算法 第六章 排序


重点
代码不考、算法题有,只考选择填空

交换、选择、插入排序;归并排序、基数排序不考

从多方面考虑

学习目标
在这里插入图片描述

本章重要内容
在这里插入图片描述

各种排序方法的比较

1 基本概念

在这里插入图片描述
在这里插入图片描述

2 交换排序

2.1 冒泡排序

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 快速排序

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3 选择排序

3.1 直接选择排序

算法的基本思想
选择排序的主要操作是选择,其主要思想是:每趟排序在当前待排序序列中选出关键字值最小(最大)的记录,添加到有序序列中。

直接选择排序,对待排序的记录序列进行n-1遍的处理,第1遍处理是将A[1…n]中最小者与A[1]交换位置,第2遍处理是将A[2…n]中最小者与A[2]交换位置,…,第i遍处理是将A[i…n]中最小者与A[i]交换位置。这样,经过i遍处理之后,前i个记录的位置就已经按从小到大的顺序排列好了。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.2 堆排序

堆是完全二叉树
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

4 插入排序

4.1 直接插入排序

算法的基本思想
插入排序的主要操作是插入,其基本思想是:每次将一个待排序的记录按其关键字的大小插入到一个已经排好序的有序序列中,直到全部记录排好序为止。

经过i-1遍处理后,A[1…i-1]己排好序。第i遍处理仅将A[i]插入A[1…i-1,i]的适当位置,使得A[1…i]又是排好序的序列。要达到这个目的,可以用顺序比较的方法

  • 首先比较A[i]和A[i-1]的关键字,若A[i-1].key≤A[i].key, 由于A[1…i]已排好序,第i遍处理就结束了;
  • 否则交换A[i]与A[i-1]的位置,继续比较A[i-1]和A[i-2]的关键字,直到找到某一个位置j(1≤j≤i-1),使得A[j].key≤A[j+1].key时为止。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.2 希尔排序

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


传送门

上一章:数据结构与算法 第五章 查找
下一章:数据库复习 第一部分 基础概念

猜你喜欢

转载自blog.csdn.net/RTyinying/article/details/111935181