Java类库中的排序算法的实现并不是传说中效率最高的“快速排序”,而是很普通的归并排序。原因是什么呢?要归结于输入待排序数据的不确定性,快速排序算法应对此种场景时表现非常糟糕,不够稳定。
归并排序基于分治法,无限分组直到每个分组只剩一个元素,再反向递归,对子序列进行排序(第一层递归的每个子序列只有两个元素)。这样每一层递归结束后,这一层的所有子序列内部都已经排好序,当递归回到原点后,数组即已排好序。
贴一下最精简的代码:
Java类库中的排序算法的实现并不是传说中效率最高的“快速排序”,而是很普通的归并排序。原因是什么呢?要归结于输入待排序数据的不确定性,快速排序算法应对此种场景时表现非常糟糕,不够稳定。
归并排序基于分治法,无限分组直到每个分组只剩一个元素,再反向递归,对子序列进行排序(第一层递归的每个子序列只有两个元素)。这样每一层递归结束后,这一层的所有子序列内部都已经排好序,当递归回到原点后,数组即已排好序。
贴一下最精简的代码:
转载于:https://www.cnblogs.com/zhangjianghao/p/10794310.html