我基本上是试图通过将数字到正确的位置进行排序号在飞行中的输入(不是100%肯定,但是这应该是插入排序)。我的理解是,要在javascript中插入数组,您需要使用数组拼接方法http://www.w3schools.com/jsref/jsref_splice.asp。JavaScript数组拼接导致内存不足异常?
我实现我的目标的企图代码如下:
var N = parseInt(readline());
var powers = [0];
for (var i = 0; i < N; i++) {
var pi = parseInt(readline());
for(var j=i;j<powers.length; j++){
if(powers[j]>pi){
powers.splice(j,0,pi);
}
else if(j+1==powers.length){
powers[j+1]=pi;
}
}
}
当我运行这段代码,我得到一个内存不足的异常。我只是想了解是我在上面的代码中做错了什么。如果我使用拼接方法错误,并且它是内存泄漏的原因,那么底层实际发生了什么? 我知道还有其他的方法可以做这种排序,但我特别感兴趣的是使用javascript数组进行插入排序。
开始无论你使用的环境,肯定有很多可用了一个调试器。例如,所有主要的Web浏览器都内置了全功能的调试器.NodeJS有几个可用的,其中之一是'node-inspector'。我建议中断你正在做的事情,并学习如何使用该调试器逐个声明代码,这样你就可以看到代码是如何运行的。没有什么更多的信息可以确切地看你的代码如何运行。 –