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

文章目录

    • 1 基本概念
    • 2 交换排序
      • 2.1 冒泡排序
      • 2.2 快速排序
    • 3 选择排序
      • 3.1 直接选择排序
      • 3.2 堆排序
    • 4 插入排序
      • 4.1 直接插入排序
      • 4.2 希尔排序
    • 总结
  • 传送门


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

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

从多方面考虑

学习目标
数据结构与算法 第六章 排序_第1张图片

本章重要内容
数据结构与算法 第六章 排序_第2张图片

各种排序方法的比较

1 基本概念

数据结构与算法 第六章 排序_第3张图片
数据结构与算法 第六章 排序_第4张图片

2 交换排序

2.1 冒泡排序

数据结构与算法 第六章 排序_第5张图片
数据结构与算法 第六章 排序_第6张图片
在这里插入图片描述

2.2 快速排序

数据结构与算法 第六章 排序_第7张图片
数据结构与算法 第六章 排序_第8张图片
数据结构与算法 第六章 排序_第9张图片
数据结构与算法 第六章 排序_第10张图片
数据结构与算法 第六章 排序_第11张图片
数据结构与算法 第六章 排序_第12张图片

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个记录的位置就已经按从小到大的顺序排列好了。

在这里插入图片描述
数据结构与算法 第六章 排序_第13张图片

数据结构与算法 第六章 排序_第14张图片

3.2 堆排序

堆是完全二叉树
数据结构与算法 第六章 排序_第15张图片
数据结构与算法 第六章 排序_第16张图片

数据结构与算法 第六章 排序_第17张图片
数据结构与算法 第六章 排序_第18张图片

数据结构与算法 第六章 排序_第19张图片
数据结构与算法 第六章 排序_第20张图片

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时为止。

数据结构与算法 第六章 排序_第21张图片
数据结构与算法 第六章 排序_第22张图片
数据结构与算法 第六章 排序_第23张图片

4.2 希尔排序

数据结构与算法 第六章 排序_第24张图片
数据结构与算法 第六章 排序_第25张图片
数据结构与算法 第六章 排序_第26张图片

总结

数据结构与算法 第六章 排序_第27张图片
数据结构与算法 第六章 排序_第28张图片
数据结构与算法 第六章 排序_第29张图片
数据结构与算法 第六章 排序_第30张图片
数据结构与算法 第六章 排序_第31张图片
数据结构与算法 第六章 排序_第32张图片


传送门

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

你可能感兴趣的:(数据结构与算法,算法)