排序---小结

本文详细比较了各种排序算法的特性,包括稳定性、时间复杂度和空间复杂度,并介绍了Java中Arrays.sort()方法的实现策略,即对于不同数据类型和数量级采用不同的排序算法。
小结

排序算法的比较

算法稳定性时间复杂度空间复杂度
选择排序不稳定O(N*N)O(1)
冒泡排序稳定O(N*N)O(1)
插入排序稳定O(n)-O(N*N)O(1)
归并排序稳定O(NlogN)O(n)
快速排序不稳定O(NlogN)O(logn)
堆排序不稳定O(NlogN)O(1)
桶排序稳定O(N)O(N)

  快速排序是最快的通用排序算法,因为它的常数项比其他算法都要小。

系统排序方法:

  Java 主要排序方法为 java.util.Arrays.sort(),该排序是一个插入排序,当数量级大于60时,如果是对原始数据进行排序,就使用快速排序,如果是对引用类型那么使用归并排序(原因是归并排序稳定)。

转载于:https://www.cnblogs.com/yjxyy/p/11104353.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值