Tag: mergesort

为什么这个(部分)MergeSort实现吹的堆栈?

我正在经历制作自己的MergeSort实现的步骤。 它是recursion的,有一个基本的情况。 我没有做的唯一的事情就是长度为%2!= 0的数组不完美。所以你必须插入2 ^ n长度的数组。 我可以稍后解决。 但是,当我插入一个长度为4的数组时,我得到一个堆栈溢出。 为什么? 代码如下: function mergeSort(arr){ // step 0 – establish the variables let newArr = [], len = arr.length; // step 1 – divide the problem into smaller parts until no longer possible if(len <= 1){ return arr; } if (len === 2){ newArr = (arr[0] < arr[1]) […]