归并排序(Merge Sort)
在计算机科学里,归并排序(Merge Sort)是一种通用有效的排序算法。通常情况下实现的是稳定的排序队列,这意味着相等元素排序后的顺序与排序前保持一致。
归并排序是采用分治法(Divide and Conquer)的一个非常典型的应用,由John von Neumann发明于1945年。
很容易理解且执行效率一般(js实现)的排序。
排序思路:将无序的数组 拆成N部分进行有序处理,然后合并;
原理图:
// 合并排序:将无序的数组 拆成N部分进行有序处理,然后合并;
// 参考代码: https://gist.github.com/paullewis/1982121
function sort9(array) {
var result = array.slice(0);
// 递归调用合并函数
function sort(array) {
var length = array.length,
mid = Math.floor(length * 0.5),
left = array.slice(0, mid),
right = array.slice(mid, length);