标签:sort cheng length com bottom logs floor 位置 cat
参考文章:
https://www.cnblogs.com/chengxiao/p/6194356.html
https://zh.wikipedia.org/wiki/%E5%BD%92%E5%B9%B6%E6%8E%92%E5%BA%8F
归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略。
分治法将问题分(divide)成一些小的问题后求解,而治(conquer)的阶段则将分的阶段得到的各答案"集成"在一起,因此叫分而治之。
function merge(left, right){ var result = []; //使用指针能提高速度。不使用shift方法,因为数组会重新分配指针,导致多花费时间。 while(left.length > 0 && right.length > 0){ if(left[0] < right[0]){ result.push(left.shift()); }else{ result.push(right.shift()); } } return result.concat(left, right); } function mergeSort(arr){ if(arr.length <=1) return arr; var middle = Math.floor(arr.length / 2); var left = arr.slice(0, middle); var right = arr.slice(middle); return merge(mergeSort(left), mergeSort(right)); }
原理如下(假设序列共有{\displaystyle n}个元素):
标签:sort cheng length com bottom logs floor 位置 cat
原文地址:https://www.cnblogs.com/chentianwei/p/11619688.html