排序应用

Posted aiguozou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序应用相关的知识,希望对你有一定的参考价值。

稳定性

如果一个排序算法能够保留数组中重复元素的相对位置则可以被称为是稳定

  • 稳定的排序算法:插入排序、归并排序
  • 不稳定的排序算法:选择排序、希尔排序、快速排序和堆排序

一般只有在稳定性是必要的情况下,稳定的排序算法才有优势。

各种排序算法的性能特点

算法 是否稳定 是否为原地排序 时间复杂度 空间复杂度 备注
选择排序 N^2 1
插入排序 介于 N 和 N^2 之间 1 取决于输入元素的排列情况
希尔排序 NlogN? 1
快速排序 NlogN lgN 运行效率由概率提供保证
三向快速排序 介于 N 和 NlogN 之间 lgN 运行效率由概率保证,同时也取决于输入元素的分布情况
归并排序 NlogN N
堆排序 NlogN 1
  • 快速排序是最快的通用排序算法。
  • 如果稳定性重很重要而空见又不是问题,归并排序可能是最好的选择

    Java 系统库的排序算法

Java 的系统程序员选择对原始数据类型使用(三向切分的)快速排序,对引用类型使用归并排序。暗示着用速度和空间(对于原始数据类型)来换取稳定性(对于引用类型)。

以上是关于排序应用的主要内容,如果未能解决你的问题,请参考以下文章

拓扑排序的应用

排序应用

常用排序的应用场景

归并排序及其应用场景

经典算法复习快速排序的应用

如何对包含多个字符串的结构应用基数排序(使用计数排序)