排序算法的特性

Posted bowenqianngzhibushiwo

tags:

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

稳定性:

稳定:冒泡排序,插入排序,归并排序、桶排序、计数排序、基数排序

非稳定:选择排序、快速排序、堆排

稳定性的优势

稳定性可保证双属性条件下,按第一个属性排序后,再按照第二个属性排序,排完后属性2相等的元素,按属性1的顺序排列。

工程中

长序列:

基础类型:快排(非稳定)

       自定义属性:堆排(稳定)

短序列《length<60》:插排

 

比较器伪代码

//不传入 Class 按照地址排序

public static class Ascend implements Comparator<Class自定义>

@Override

public  int compare(Class自定义  o1, Class自定义 o2)

return o1.属性-o2.属性;//升序

 

sort(a,new Ascend());

 

PriorityQueue<自定义类> heap=new PriorityQueue<自定义类>(new Ascend());//小顶堆

红黑树

TreeSet<自定义类> heap=new TreeSet<自定义类>(new Ascend());

 

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

排序算法的特性

常见的排序算法

C++11新特性应用--介绍几个新增的便利算法(用于排序的几个算法)

世界上最快的排序算法

常见排序算法介绍和实现

常见排序算法介绍和实现