数据排序方法的比较

总结一下不同的数据排序算法

首先,排序根据排序方式的不同分为四大类:插入排序、选择排序、交换排序、归并排序

插入排序类: 直插排序      稳定         时间复杂度O(n^2)

                              希尔排序      不稳定     时间复杂度O(n^1.5)


选择排序类: 简单选择排序     稳定          时间复杂度O(n^2)

                              堆排序               不稳定       时间复杂度O(nlogn)


交换排序类:冒泡排序        稳定               时间复杂度O(n^2)

                             快速排序        不稳定           时间复杂度O(nlogn)           空间复杂度O(logn)~O(n)


归并排序类:归并排序        稳定              时间复杂度O(nlogn)            空间复杂度O(n)


从时间复杂度来看,显然堆排、快排、归并要更好一些,而归并排序牺牲了空间复杂度换取了稳定性的提升,在一些非常在乎稳定性的环境中用归并排序是一个不错的选择。而在一些非常在意内存容量的环境中,几乎没有多占用堆排序就显得更好了。

相对于三种比较复杂的排序方法,如果数据量很小的话那么冒泡排序、直插排序来的更快一些

假如说需要排序的每个数据本身非常庞大,那么可以选择交换次数比较少的简单选择排序。

不受初始数据状态影响的排序方式有:简单选择排序、堆排序、归并排序


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值