归并排序
Posted sarah-wen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了归并排序相关的知识,希望对你有一定的参考价值。
function mergesort(arr) { var len= arr.length; if (len==1) { return arr;//返回的条件是数组大小为1 } var midIndex = Math.floor(len/2); var mid = arr[midIndex]; var left = arr.slice(0, midIndex); var right = arr.slice(midIndex, len); return merge(mergesort(left),mergesort(right));//数组都为1时,才开始进行归并 } function merge(left, right) {//归并是一个从下到上的顺序 var i =0; var j = 0; var result = []; while (i<left.length && j<right.length) {//这里利用数组result进行排序,从下往上依次是排好序的数组,然后一步一步合并成大数组。 if(left[i]<right[j]) { result.push(left[i]); i++; } else { result.push(right[j]); j++; } } while (i<left.length) {//这里是把剩余项依此放到result中 result.push(left[i]); i++; } while (j<right.length) { result.push(right[j]); j++; } return result; } var object = new mergesort([1,5,6,2,4,3]); console.log(object);
以上是关于归并排序的主要内容,如果未能解决你的问题,请参考以下文章