数据结构与算法-排序算法

1、 排序算法的介绍

排序也称排序算法(sort Algorithm),排序是将一组数据,依指定的顺序进行排序的过程。

2、排序的分类

  1. 内部排序:
    指将需要处理的所有数据都加载到 内部存储器(内存) 中进行排序。

  2. 外部排序:
    数据量过大时,无法全部加载到内存中,需要借助 外部存储(文件等) 进行排序。

  3. 常见的排序算法分类
    在这里插入图片描述

2.1 插入排序

插入排序和希尔排序:https://blog.youkuaiyun.com/Zy1_6_2/article/details/119653721

2.2 选择排序

选择排序:https://blog.youkuaiyun.com/Zy1_6_2/article/details/119653753

2.3 交换排序

冒泡排序: https://blog.youkuaiyun.com/Zy1_6_2/article/details/119541860

快速排序: https://blog.youkuaiyun.com/Zy1_6_2/article/details/119764202

2.4 归并排序

归并排序:https://blog.youkuaiyun.com/Zy1_6_2/article/details/119653771

3、排序算法的比较

相关术语解释:

  1. 稳定: 如果a原本在b前面,而a=b,排序之后a任然在b的前面;
  2. 不稳定: 如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;
  3. 内排序: 所有排序操作都是在内存中完成。
  4. 外排序: 由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行。
  5. 时间复杂度: 一个算法执行所消耗的时间。
  6. 空间复杂度: 运行完一个程序所需的内存大小。
  7. n: 数据规模。
  8. k: “桶” 的个数
  9. in-place: 不占用额外内存。
  10. out-place: 占用额外内存。

对比表格:

排序算法平均时间复杂度最好情况最坏情况空间复杂度排序方式稳定性
冒泡排序O(n2)O(n)O(n2)O(1)in-place稳定
选择排序O(n2)O(n2)O(n2)O(1)in-place不稳定
插入排序O(n2)O(n)O(n2)O(1)in-place稳定
希尔排序O(n log n)O(n log2 n)O(n log2 n)O(1)in-place不稳定
归并排序O(n log n)O(n log n)O(n log n)O(n )out-place稳定
快速排序O(n log n)O(n log n)O(n2)O(n log n)in-place不稳定
堆排序O(n log n)O(n log n)O(n log n)O(1)in-place不稳定
基数排序O(n* k)O(n* k)O(n* k)O(n+ k)out-place稳定
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值