各种排序应用场合

时间复杂度

O(n*n)

  • 插入排序、选择排序和冒泡排序

O(nlogn)

  • 快速排序、堆排序和归并排序

影响排序效果的因素

  • 待排序的数据规模
  • 关键字的结构及其初始状态
  • 稳定性的要求
  • 语言工具的条件
  • 存储结构
  • 时间和辅助空间复杂度

应用场景:

  • 若n较小(数据规模较小),插入排序或选择排序较好
  • 若数据初始状态基本有序(正序),插入、冒泡或快速排序为宜
  • 若n较大,则采用时间复杂度为O(nlogn)的排序方法:快速排序或堆排序
  • 快速排序是目前基于比较的排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间最短;
  • 堆排序所需的辅助空间少于快速排序,并且不会出现快速排序可能出现的最坏情况。这两种排序都是不稳定的。

快速排序最坏情况:时间复杂度是O(n*n)

快速排序的时间性能取决于快速排序的递归深度,可以用递归树来描述递归算法的执行情况
- 在关键字已经基本有序的情况下(正序或者逆序),每次划分都只得到一个比上一次划分少一个记录的子序列,此时需要执行n-1次递归调用,且第i次划分需要经过n-i次关键字的比较才能找到第i个记录,比较次数达到(n(n-1))/2,最终其时间复杂度为O(n*n)

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是常见的排序算法的应用场合或环境、稳定性、理论平均复杂度、理论最坏复杂度的说明: 1. 冒泡排序: - 应用场合:适用于数据量较小的情况; - 稳定性:稳定; - 理论平均复杂度:O(n^2); - 理论最坏复杂度:O(n^2)。 2. 选择排序: - 应用场合:适用于数据量较小的情况; - 稳定性:不稳定; - 理论平均复杂度:O(n^2); - 理论最坏复杂度:O(n^2)。 3. 插入排序: - 应用场合:适用于数据量较小且基本有序的情况; - 稳定性:稳定; - 理论平均复杂度:O(n^2); - 理论最坏复杂度:O(n^2)。 4. 希尔排序: - 应用场合:适用于数据量较大的情况; - 稳定性:不稳定; - 理论平均复杂度:O(n log n); - 理论最坏复杂度:O(n^2)。 5. 归并排序: - 应用场合:适用于数据量较大的情况; - 稳定性:稳定; - 理论平均复杂度:O(n log n); - 理论最坏复杂度:O(n log n)。 6. 快速排序: - 应用场合:适用于数据量较大的情况; - 稳定性:不稳定; - 理论平均复杂度:O(n log n); - 理论最坏复杂度:O(n^2)。 7. 堆排序: - 应用场合:适用于数据量较大的情况; - 稳定性:不稳定; - 理论平均复杂度:O(n log n); - 理论最坏复杂度:O(n log n)。 总体而言,排序算法的选择应该根据具体场景和需求而定。在实际应用中,还需要考虑到算法的实现细节、空间复杂度等因素。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值