排序(2)

下介绍经典排序算法的空间复杂度
O(1)
插入排序、选择排序、冒泡排序(时间复杂度O(N^2))
推排序、希尔排序
O(logN)~O(N)
快速排序
O(N)
归并排序
O(M)
计数排序、基数排序 M为桶的数量

排序算法-稳定性
概念:假定待排序的记录序列中,存在多个具有相同关键字的记录,若经过排序,这些记录的相对次序保持不变,称这种排序算法是稳定的,否则称为不稳定的。

稳定的排序算法
冒泡排序、插入排序、归并排序、计数排序、基数排序、桶排序

不稳定的排序算法
选择排序、堆排序、快速排序、希尔排序

这里写图片描述

这里写图片描述

这里写图片描述

希尔排序交换位置,就会不稳定。

补充说明
1.排序算法无绝对优劣
算法效果取决于排序的元素。例如人身高,数值范围小,可以选择计数排序,但对于均匀分布的整数,计数排序就不合适了。除非面试特别说明,否则理解为均匀分布。

2.为何叫快速排序
快速排序并不代表它比堆排序和归并排序优良。在最好的情况下,它的渐进复杂度与堆排序和归并排序是相同的。只是它的常亮系数比较小。
算法效果取决于排序的元素。例如人身高,数值范围小,可以选择计数排序,但对于均匀分布的整数,计数排序就不合适了。除非面试特别说明,否则理解为均匀分布。

3.工程上的排序
1、工程上是综合排序
2、数组较小时,插入排序
3、数组较大时,快速排序或其它O(N*logN)的排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值