2、算法基础之排序

十大经典排序算法为:

  • 冒泡排序
  • 选择排序
  • 插入排序
  • 希尔排序
  • 归并排序
  • 快速排序
  • 堆排序
  • 计数排序
  • 桶排序
  • 基数排序

按照平均时间复杂度和最差时间复杂度进行分析以及需要使用额外空间与否,额外空间使用多少来判断排序算法的优劣;
下图是十种排序算法的比较:

名词解释:
n:数据规模
k:"桶"的个数
In-place:占用常数内存,不占用额外内存
Out-place:占用额外内存
. 排序算法的稳定性:排序前后相同元素的相对位置不变,则称排序算法是稳定的;否则排序算法是不稳定的。

在这里插入图片描述
在这里插入图片描述
1.关于时间复杂度各排序算法的比较:
平方阶 (O(n2)) 各类简单排序:直接插入、直接选择和冒泡排序。

线性对数阶 (O(nlog2n)) 快速排序、堆排序和归并排序

O(n1+§)) 排序,§ 是介于 0 和 1 之间的常数。 希尔排序

线性阶 (O(n)) 排序 基数排序,此外还有桶、箱排序。

2.关于稳定性各排序方法的比较

稳定的排序算法:冒泡排序、插入排序、归并排序和基数排序。(辅助记忆冒插归基稳得一批)

不是稳定的排序算法:选择排序、快速排序、希尔排序、堆排序。(辅助记忆希堆快选有点垃圾)
3.快速排序的思想
选择一个数字mid(例如数组选择第一个元素)
将数组分成两部分,大于mid为一部分,小于mid为一部分
会使用到递归来进行不断排序
最后生的数组就是排序好的数组.

参考:
菜鸟教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值