排序算法详解:冒泡、选择、插入、快速、归并与堆排序

该思维导图总结了常见的六种排序算法:冒泡排序、选择排序、插入排序、快速排序、归并排序和堆排序。分别阐述了每种算法的基本思想、优缺点及适用场景。其中,冒泡排序和选择排序简单易懂但效率低;插入排序适用于少量或近乎有序数据;快速排序平均效率高但最坏情况效率低;归并排序时间复杂度稳定但空间复杂度高;堆排序时间复杂度较高且不稳定。 选择合适的排序算法取决于具体数据规模和特点。

源码
# 排序算法详解
## 1. 冒泡排序
- 基本思想
  - 比较相邻元素并交换
  - 最大(或最小)元素“冒泡”至末尾
- 优缺点
  - 简单易懂
  - 效率较低
- 优化策略
  - 设定标志位,若一趟未发生交换,提前结束
- 适用场景
  - 小规模数据集
  - 教学与演示

## 2. 选择排序
- 基本思想
  - 每趟找到剩余部分的最小值
  - 与当前位置元素交换
- 优缺点
  - 简单直观
  - 效率较低,时间复杂度O(n²)
- 适用场景
  - 小规模数据
  - 教学示例

## 3. 插入排序
- 基本思想
  - 将未排序元素插入到已排序部分的正确位置
- 优缺点
  - 对少量元素效率高
  - 对逆序数据效率低
- 适用场景
  - 少量元素
  - 近乎有序数组

## 4. 快速排序
- 基本思想
  - 选择一个基准元素
  - 划分为比基准小、等于和大的子数组
  - 递归调用排序子数组
- 优缺点
  - 平均时间复杂度O(n log n)
  - 最坏情况下时间复杂度O(n²)
- 优化策略
  - 选择随机或中位数作为基准
  - 小数组使用插入排序
- 适用场景
  - 大规模数据

## 5. 归并排序
- 基本思想
  - 递归分割数组至只有一个元素
  - 合并有序子数组成更大的有序数组
- 优缺点
  - 时间复杂度稳定O(n log n)
  - 需要额外的空间,空间复杂度O(n)
- 适用场景
  - 大规模数据
  - 稳定排序需求

## 6. 堆排序
- 基本思想
  - 利用堆数据结构进行排序
  - 先构建最大堆
  - 交换堆顶元素与末尾元素,重复调整堆
- 优缺点
  - 时间复杂度O(n log n)
  - 不稳定排序
- 适用场景
  - 大规模数据
  - 需要原地排序
图片
排序算法详解:冒泡、选择、插入、快速、归并与堆排序