排序算法的特性

稳定性:

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

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

稳定性的优势

稳定性可保证双属性条件下,按第一个属性排序后,再按照第二个属性排序,排完后属性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());

猜你喜欢

转载自www.cnblogs.com/bowenqianngzhibushiwo/p/11620690.html